javascript - 在初始化 Javascript 时执行的私有(private)函数中设置公共(public)属性

标签 javascript constructor private public

我有一个对象

myObj = function(){
    this.myPublicMember = null;
    function privateInitFunc(){
         this.myPublicMember = "blah blah test";
    }

    privateInitFunc()
}

myObj.prototype = {
    getPublicMember: function(){ console.log(this.myPublicMember) }
}

我实例化如下:

 var a = new myObj();
 a.getPublicMember // logs Null!

如何在初始化时执行的私有(private)函数中设置公共(public)属性?我需要私有(private)初始化函数,因为在设置 myPublicMember 之前还获得了一些其他变量

最佳答案

您应该在调用函数时设置上下文:

privateInitFunc.call(this)

关于javascript - 在初始化 Javascript 时执行的私有(private)函数中设置公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727715/

相关文章:

javascript - 组合执行相同类型操作的函数

javascript - 使用javascript输出html

javascript - 如何在 JavaScript 中访问父类(super class)的私有(private)成员?

python-3.x - 为什么 private __var 可以在类之外改变? (Python 3)

ios - Interface Builder 如何与私有(private) IBOutlet 交互?

javascript - 如何在 javascript/jquery 中转义小于登录?

javascript - 使用 javascript/jquery 应用上标/下标标签

Java 构造函数模型

java - 好还是坏——使用构造函数从远程 web 服务初始化模型

c++ - C++11 的三规则变成五规则?