我搜索了很长时间。找不到任何答案可以满足我的问题。我正在尝试的是:
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();