История учебного курса №6 по программированию от JL

Серия [История учебного семинара по программированию от JL]

JavaScript “Scope & Closure”
JavaScript “This”
JavaScript “Call, Apply, Bind”
Summary of CodeSchool’s “Try jQuery”
JavaScript “This” — Advanced(Current)
JavaScript “Code Reuse” — Part 1–1: Decorators
JavaScript “Code Reuse” — Part 1–2: Functional Classes
JavaScript “Prototype Chains”
JavaScript “Code Reuse” — Part 2–1: Prototypal Classes
JavaScript “Code Reuse” — Part 2–2: Pseudo-classical Classes

ЧАСТЬ 1. Заблуждения об «этом»

Ключевое слово this - это идентификатор значений (аналогичный переменной или параметру функции), он разработан для поддержки объектно-ориентированного программирования. Вместо того, чтобы явно присваивать значения в коде, вы предполагаете, что this автоматически привязывается к «нужному объекту». Тем не менее, у вас есть такой же контроль в вашем коде над привязкой для this, как и над привязками для параметров функции. Кроме того, вы не всегда можете полагаться на интерпретатор, чтобы привязать this к объекту, который кажется, что он должен быть «наиболее важным».

ведет себя почти так же, как параметр. Вместо того, чтобы быть привязанным к значению, предоставленному между параметрами времени вызова, this привязывается к объекту слева от точки времени вызова.

ЧАСТЬ 2. Параметр «Это»

Правила того, как this получает привязку, напоминают правила того, как позиционные параметры функции получают свои привязки.

Предположим, вы запускаете свой код с помощью отладчика и остановились на строке, которая ссылается на this.

  1. Просмотрите наружу от ключевого слова this и найдите ближайшие закрывающие фигурные скобки, которые представляют тело функции. (* Игнорируйте фигурные скобки, которые не представляют тела функций, такие как фигурные скобки для литералов объектов и блоков if)
  2. Найдя определение функции, где появляется this, найдите, где функция вызывается. (* В отладчике вы можете найти это место, посмотрев на один шаг вниз в стеке вызовов.)
  3. Изучите синтаксис способа вызова функции, чтобы узнать, какой шаблон используется. (* Существует всего пять различных шаблонов того, как ключевое слово this может отображаться в вашем коде. Каждый из этих шаблонов связан с определенным правилом, которое интерпретатор использует, чтобы определить, что this привязывается к внутренней функции для вызова. После использования шаблона вызова вы можете предсказать, какой интерпретатор будет связываться с this.)

[Примечание] Это сообщение в блоге написано на основе лекции от CodeStates.

Спасибо за чтение! 💕 Если вам понравился этот пост в блоге, пожалуйста, хлопайте в ладоши👏