访问JavaScript类中的父属性

时间:2017-08-21 12:46:08

标签: javascript

我尝试访问我的" Foo"类。我的代码如下所示:

class Foo {
  constructor(myname) {
    this.myname = myname;
  }
}

Foo.prototype.get = {
  name() {
    return this.myname;
  }
};

const TestClass = new Foo('Steven');
TestClass.get.name(); // undefined

很明显,在TestClass.get.name中,myname属性不存在,因为this上下文为TestClass.get

不,我正在寻找推荐的方式来访问myname。 Smth喜欢:Parent.myname。

2 个答案:

答案 0 :(得分:1)

在您调用.name()的示例上下文中,对象为:TestClass.get,即{ name: function() {...} }。但是您需要使用TestClass作为上下文调用此方法:

 TestClass.get.name.call(TestClass)

答案 1 :(得分:1)

如果您使用的是ES6课程,我建议您编写以下访问者:

class yourClass {
    constructor(myname) {
        this.myname = myname;
    }

    get name() {
        return this.myname;
    }
}

使用该类的示例代码:

var foo = new yourClass("Harold")
console.log(foo.name)

请注意,即使您基本上正在运行某个功能,也可以像字段一样访问它们。