javascript oop私有方法访问公共属性
我是js oop新手,我尝试从私有方法'b(){}'访问公共属性 但它显示的是未定义的javascript oop私有方法访问公共属性,javascript,oop,Javascript,Oop,我是js oop新手,我尝试从私有方法'b(){}'访问公共属性 但它显示的是未定义的 和我也希望从外部改变这个属性,但是考虑对象在我改变属性值之前将首先构造,任何人如何修复这个属性?< /P> < P> > < >绑定与您定义函数的位置无关,所有与调用函数的方式有关。 在本例中,您将函数作为常规函数调用,这意味着此将绑定到全局对象(或在严格模式下未定义的)此绑定的方式与定义函数的位置以及调用函数的方式无关 在您的情况下,您将函数作为常规函数调用,这意味着此将绑定到全局对象(或未定义的在严格模
和我也希望从外部改变这个属性,但是考虑对象在我改变属性值之前将首先构造,任何人如何修复这个属性?< /P> < P> > < <代码> >绑定与您定义函数的位置无关,所有与调用函数的方式有关。
在本例中,您将函数作为常规函数调用,这意味着
此
将绑定到全局对象(或在严格模式下未定义的
)此绑定的方式与定义函数的位置以及调用函数的方式无关
在您的情况下,您将函数作为常规函数调用,这意味着
此
将绑定到全局对象(或未定义的
在严格模式下)。我用ECMA6语法为您重写了它,以便更容易阅读,并更正了它:
function foo(){
this.a = 123;
b();
function b(){
alert(this.a);//undefined
}
}
var o = new foo();
o.a = 456;
我用ECMA6语法为您重写了它,以便更容易阅读,并更正了它:
function foo(){
this.a = 123;
b();
function b(){
alert(this.a);//undefined
}
}
var o = new foo();
o.a = 456;
prototype
用于在javascript
中创建类及其方法。我根据nativejavascript
修改了您的示例:
class foo {
constructor() {
this.a = 123;
this.b();
}
b() {
alert(this.a);
}
}
var o = new foo();
o.a = 456;
prototype
用于在javascript
中创建类及其方法。我根据nativejavascript
修改了您的示例:
class foo {
constructor() {
this.a = 123;
this.b();
}
b() {
alert(this.a);
}
}
var o = new foo();
o.a = 456;
如果你想学习javascript。。这家伙有很棒的视频。检查这里:看起来您试图在构造函数内声明函数或其他东西。。这家伙有很棒的视频。检查这里:看起来您试图在构造函数内声明函数或其他东西。