这个问题我找了好久。找不到任何答案来满足我的问题。我正在尝试的是:
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)功能。在调用函数 publicFunction
时,您还缺少 this
关键字。
私有(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();
关于Javascript从构造函数内部的函数调用原型(prototype)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28366219/