为什么this
在下面的代码中提醒为undefined
?
var testObj = {};
testObj.aMethod = function() {
this.testVar = "thing"
alert(this.anObject.dimension1);
alert(this.anObject.dimension2);
};
testObj.aMethod.prototype.anObject = {
dimension1 : this.testVar,
dimension2 : "thing2"
};
var testing = new testObj.aMethod();
答案 0 :(得分:2)
您正在创建一个没有任何对象上下文的对象({dimension1: this.testVar, dimension2: "thing2"}
)。当时this
应该是什么?之后,您将其分配给testObj.aMethod.prototype.anObject
。
您可以使用此类代码来实现您的目标:
var testObj = {};
testObj.aMethod = function() {
this.testVar = "thing"
alert(this.anObject.dimension1);
alert(this.anObject.dimension2);
};
testObj.aMethod.prototype.getAnObject = function() {
return {
dimension1 : this.testVar,
dimension2 : "thing2"
};
};
var testing = new testObj.aMethod();
然后使用testing.getAnObject().dimension1
访问该对象。