从对象内部的函数获取范围外的变量 - Javascript
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从对象内部的函数获取范围外的变量 - Javascript相关的知识,希望对你有一定的参考价值。
我在一个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();
答案
使用箭头函数,它将绑定到定义它的对象中的原始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();
另一答案
这样的事可能吗?
<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>
以上是关于从对象内部的函数获取范围外的变量 - Javascript的主要内容,如果未能解决你的问题,请参考以下文章