У меня есть класс, в котором есть метод, который использует this
.Я «обновил» экземпляр этого объекта и передал его метод переменной в глобальном контексте.Если я тогда вызываю мою глобальную функцию, то this
не определено.
class Tests {
logThis() {
console.log(this);
}
}
const globalFunc = new Test().logThis;
globalFunc(); // undefined
Теперь, если я только что использовал литерал объекта, то this
is global.
const someObject= {
logThis2: function() {console.log(this)}
}
const globalFunc2 = someObject.logThis2;
globalFunc2(); // global object
В обоих случаях глобальный объект владеет кодом и должен предоставлять this
в контексте выполнения globalFunc
.Так почему же разница в this
для метода, сгенерированного классом?