我在Class内的对象中有一个函数。
该类的对象已初始化,我想调用该函数,但该函数需要在类的构造函数上定义的变量。
class someClass {
constructor() {
this.foo = "bar";
this.print = {
variable: function() {
console.log(this.foo);
}
};
}
}
// And I call it from the global scope
var someObject = new someClass();
someObject.print.variable();

会打印
未定义
我知道的是一个不同的范围,也许我无法访问它。
这样做的目的是让我的职能有一些顺序。
我想访问我的函数,如someObject.print.variable();
答案 0 :(得分:2)
使用箭头函数,它将绑定到定义它的对象中的原始this
。
class someClass {
constructor() {
this.foo = "bar";
this.print = {
variable: () => {
console.log(this.foo);
}
};
}
}
// And I call it from the global scope
var someObject = new someClass();
someObject.print.variable();
答案 1 :(得分:1)
这样的事可能吗?
<script>
class someClass {
constructor() {
let that = this;
this.foo = "bar";
this.print = {
variable: function() {
console.log(that.foo);
}
};
}
}
//And I call it from the global scope
var someObject = new someClass();
someObject.print.variable();
</script>