我使用“constructor chaining”来定义基类(超级)。
function Super () {
this.member1 = 'superMember1';
this.member2 = 'superMember2';
}
function Sub() {
Super.call(this, arguments);
this.member3 = 'subMember3';
var t = this.hasOwnProperty("member1"); // gives me true, so I cannot use it
}
如何在我的Sub类或Super类中测试成员(1,2,3)是否已定义(属于)?
备注:`这[[name]]'不是这样的,因为我只能决定是否分配了一个值 - 而不是它是属于Super还是Sub。
如下面的Darhazer注释,构造函数链是复制成员,所以它可能很棘手。
答案 0 :(得分:2)
使用hasOwnProperty()检查成员是否在当前类中定义。如果不是 - 显然它是由超类定义的。
答案 1 :(得分:0)
您可以检查未定义的
if (typeof this.member1 == "undefined") {
//undefined
}
答案 2 :(得分:0)
显然截至目前为止,不可能。因此将被关闭。