从 JavaScript 中的私有函数访问公共函数

Access public function from private function in JavaScript

本文关键字:函数 访问 JavaScript      更新时间:2023-09-26

我最近开始使用JavaScript中的OOP。而且,我对这些事情感到困惑。我知道JavaScript与Java完全不同。但这引起了问题。

我正在尝试实现的内容:

function myClass() {
    //Declare private variable
    var privateVar = '';
    //To act as constructor
    privateFunction('Hello');
    //Getter
    this.publicFunctionGet = function() {
        return privateVar;
    }
    //Setter
    this.publicFunctionSet = function(x) {
        privateVar = x;
    }
    function privateFunction(x) {
        this.publicFunctionSet(x);
    }
}
//Create object of myClass
var me = new myClass();
alert(me.publicFunctionGet());

这是抛出一个错误,上面写着:

捕获的类型错误:未定义不是函数

function privateFunction(x) {
    this.publicFunctionSet(x);
}

我该怎么办?如何实现这部分。?我是否误解了JavaScript类?

看看这个答案。

将公共函数包装在对象文本中并返回它。因此,您可以在对象文字函数中调用私有函数。

您应该阅读有关提升以及声明函数和函数表达式之间的差异的信息。

你的代码不起作用,因为js知道有声明的var publicFunctionSet(函数表达式),但是当声明privateFunction(x)时它不是一个函数。

Pradhan@Akash答案将解决您的问题,但我想您仍然应该检查背景和未解决的原因,以及为什么它没有像您尝试的那样工作:)