为什么this
在第一个示例中不是对父对象的引用?
var obj = {
some: this
};
console.log(obj.some); // (1) получаем window, хотя вызываем от obj
var ObjConstructor = function () {
this.some = this;
};
obj = new ObjConstructor();
console.log(obj.some); // (2) получаем объект, созданный ObjConstructor'ом, как и ожидалось
因为在第一个例子中,
this
在赋值的时候some
,表示window
因为 这发生在构造函数(或函数)之外。第二种情况,当函数被调用时,构造函数
this
指向新创建的对象。要使第一个示例正常工作,您需要执行以下操作: