javascript oop私有(private)方法访问公共(public)属性

标签 javascript oop

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/

相关文章:

oop - (如何) raku 做类同义词?

javascript - 如何将一种格式的json转换为另一种格式

javascript - Parse.com 的 Stripe 云代码模块有限制吗?

javascript - 如何根据显示的用户文本禁用输入字段?

c++ - C++ 是完全面向对象的语言吗?

oop - 将接口(interface)对象传递给构造函数或方法

c++ - bigint 运算符重载

javascript - 绘制0到24小时时间序列的流程图

javascript - 如何列出 angular-translate 加载的所有语言

c# - 您会考虑在这里更改接口(interface)或使用适配器吗?