我想在原型链上创建一个设置对象,用作我的应用程序的查找。我已经试过了:
http://jsfiddle.net/7kwXd/3/
var d9l = {};
d9l.aMethod = function() {
//fails here with Cannot read property 'dimension1' of undefined
alert(this.anObject.dimension1);
};
d9l.aMethod.prototype.anObject = {
dimension1 : "x1",
dimension2 : "y1"
};
var testing = d9l.aMethod();
但是我只是无法在构造函数中读取未定义的属性“ dimension1”。是否可以将原型定义为对象?
最佳答案
因为d9l
不是构造对象,所以它的方法没有像您期望的那样引用this
。要验证,请尝试alert(this)
并查看得到的内容。
要解决此问题,请执行以下操作:
function d9l() {}
d9l.prototype.aMethod = function() {
alert(this.anObject.dimension1);
};
d9l.prototype.anObject = {
dimension1: "x1",
dimension2: "y1"
};
var testing = (new d9l()).aMethod();