我尝试访问我的" 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。
答案 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)
请注意,即使您基本上正在运行某个功能,也可以像字段一样访问它们。