Новым и опытным разработчикам может быть трудно понять, как это работает. Имея в виду это/это, я пролью свет на то, как это работает в некоторых полезных ситуациях, которые могут возникнуть.

Давайте подумаем об этом в более повседневном использовании. В повседневной речи мы обычно говорим: «Джон бежит в Старбакс, потому что емунужна чашка кофе." Мы бы никогда не сказали: «Джон бежит в Starbucks, потому что Джону нужна чашка кофе». Как глупо!

Точно так же мы понимаем, что можем использовать ссылку на Джона, как в Javascript, для ссылки на предмет в контексте. Давайте взглянем:

Заимствуете это?

Иногда нам может понадобиться «позаимствовать» методы, которые использовали this. В этих случаях мы можем реализовать «вызов» или «применить», просто добавив к .call или .apply аргумент, первым из которых является «новый» this. Единственная разница в том, что аргументы вызова представляют собой последовательные строки (arg1, arg2, arg3..), а аргументы применения — (arg1, [arg2, arg3..]).

Фиксация этого внутри закрытия

Другой случай, когда this понимается неправильно, — это когда мы используем внутренний метод (замыкание). Важно отметить, что замыкания не могут получить доступ к переменной this внешней функции с помощью ключевого слова this, поскольку переменная this доступна только самой функцией, а не внутренними функциями.

В заключение, если вы сомневаетесь в значении этого, отладьте, чтобы определить значение. Реализуйте соответствующие меры, такие как привязка, вызов, применение или сохранение значения this в переменной для последующего использования. Удачного кодирования!