JavaScript: Почему динамическое связывание *this* было разрешено в языке?Javascript

Форум по Javascript
Ответить
Anonymous
 JavaScript: Почему динамическое связывание *this* было разрешено в языке?

Сообщение Anonymous »

В JavaScript объект, на который this ссылается в методе объекта, меняется в зависимости от того, откуда вызывается метод:

Код: Выделить всё

window.myString = "what";
const o = {
myString: "Hello world",
logString(){
console.log(this.myString);
}
};

o.logString(); // logs "Hello world" to the console
const func = o.logString;
func(); // logs "what" to the console

За многие годы использования JavaScript мне никогда не приходилось динамически менять значение этого параметра. Фактически, это стало для меня причиной нескольких загадочных ошибок.
Почему такое поведение вообще было разрешено в языке?

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-language
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»