b: 2,
c: function() {
return function() {
console.log(this)
}
}
}
obj.c()()
Почему, выводиться глобальный объект?
1. Контекст функции 2. Ты возвращаешь из функции контекст функции
const obj = { a: 1, b: 2, c: function() { return function() { console.log(this) }.bind(this) } }
то есть, я правильно понимаю, что функция c она принадлежит контексту объекта, а возвращаемая функция функции c не принадлежит контексту объекта, потому что она там не объявлена в нём
Ты в лог выводишь контекст функции, а нужно объекта, если я правильно понял.
Тогда ты контекст неверно определил. Крч нужно было забиндить
я понял, просто я думал что либо выведется пустой контекст функции либо контекст объекта, но никак не глобальный
Ссылочный тип не распространяется на функцию которую ты вернул obj.d = obj.c() obj.d()
Обсуждают сегодня