function foo(){
this.a = 123;
b();
function b(){
alert(this.a);//undefined
}
}
var o = new foo();
o.a = 456;
我是 js oop 的新手,我尝试从私有(private)方法 'b(){}' 访问公共(public)属性
但是显示undefined
而且我也希望从外部更改此属性,但考虑到在我更改属性值之前首先构造对象,有人如何解决这个问题?
最佳答案
this
的绑定(bind)方式与定义函数的位置无关,而与调用函数的方式有关。
在您的情况下,您将函数作为常规函数调用,这意味着 this
将绑定(bind)到全局对象(或在严格模式下为 undefined
)。
关于javascript oop私有(private)方法访问公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39476308/