中定义我正在使用“constructor chaining”来定义基类(超级)。确定成员是否在(Javascript)超类
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
}
我该如何测试一个成员(1,2,3)是在我的Sub类还是在Super类中定义(属于)?
备注:`this [“name”]'不是方法,因为我只能决定是否赋值 - 不是它属于Super或Sub。
由于Darhazer评论下面,构造函数链复制成员,所以它可能会很棘手。
这不起作用,因为如果Super中的值有时未定义(没有赋值),它将失败。 –
为了记录,我不认为你应该将值分配给未赋值,但将它们设置为null。但是,如果您需要这样做,@ Darhazer的答案应该可以工作。 –
绝对如此。只是为了解释... –