Я не понимаю почему в этом случае значением
this
будет
window
(в нестрогом режиме).
function makeUser() {
return {
name: "Джон",
ref: this //window
};
};
let user = makeUser();
console.log(user.ref); //window
По сути же, когда переменной user передается ссылка на объект, который возвращает функция
makeUser
,
user
приобретает такой вид:
let user = {
name: "Джон",
ref: this //user
};
Ну и здесь получается, что
this
находится в контексте выполнения объекта
user
, а не
window
.
Тот же
learn.js, например:
...значением this во время вызова является объект перед точкой.
Здесь перед точкой - user...