确定成员是否定义在(Javascript)超类中

Determine whether member is defined in (Javascript) super class

本文关键字:Javascript 超类 成员 是否 定义      更新时间:2023-09-26

我使用"constructor linking "来定义一个基类(Super)。

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)是否在子类或超类中定义(属于)?

注释:' this["name"]'不是这样的,因为我只能决定一个值是否被分配了,而不能决定它是属于Super还是Sub。

正如Darhazer下面评论的那样,构造函数链接复制成员,所以它可能很棘手。

使用hasOwnProperty()检查成员是否在当前类中定义。

您可以检查未定义

if (typeof this.member1 == "undefined") {
    //undefined
}

显然就目前的答案而言,是不可能的。