我搜索了很长时间。找不到任何答案可以满足我的问题。我正在尝试的是:

function myClass() {
    function privateFunction () {
        publicFunction();    //Error
    }
}

myClass.prototype.publicFunction = function() {
    this.variable = 1;
}
myClass.prototype.publicFunction2= function() {
    return this.variable;
}

这给了我错误。我没有真正的问题是:

我试过的
this.publicFunction();

然后:
myClass.publicFunction();

然后:
myClass.prototype.publicFunction();

这可行,但它会覆盖每个对象。就像在不同的JS对象之间是静态的一样。

最佳答案

您尚未正确声明原型(prototype)函数。调用函数this时,还会缺少publicFunction关键字。

私有(private)函数(privateFunction)不是该类的成员,因此,如果要将其作为函数调用,则必须为其指定上下文。

function myClass() {
    function privateFunction () {
        this.publicFunction();
    }

    privateFunction.call(this);
    document.write(this.publicFunction2()); // show value in Stackoverflow snippet
}

myClass.prototype.publicFunction = function() {
    this.variable = 1;
}

myClass.prototype.publicFunction2 = function() {
    return this.variable;
}

var myClassPrototype = new myClass();

10-04 16:03