Я видел Как работает "his" ключевое слово в функции?, но я не вижу ответа на следующее.
С учетом этого кода:
var MyDate = function(date) {
this.date = date;
};
var obj1 = {
foo: new Date(),
bar: new MyDate(this.foo) // this.foo is undefined
};
var obj2 = {};
obj2.foo = new Date();
obj2.bar = new MyDate(this.foo); // this.foo is undefined
var obj3 = {
foo: new Date(),
bar: new MyDate(obj3.foo)
};
var obj4 = {};
obj4.foo = new Date();
obj4.bar = new MyDate(obj4.foo);
Почему первые две попытки терпят неудачу, но последние две работы? Если this
не привязан к текущему литералу объекта, к чему он привязан?