Javascript:从同一类的另一个方法访问类方法
新手使用javascript编写类,但无法解决此问题。实际上,anothermethod可以返回一个回调到构造函数,然后我可以从那里调用一个方法,但也许有一个更简单的方法Javascript:从同一类的另一个方法访问类方法,javascript,oop,Javascript,Oop,新手使用javascript编写类,但无法解决此问题。实际上,anothermethod可以返回一个回调到构造函数,然后我可以从那里调用一个方法,但也许有一个更简单的方法 function sample() {} //constructor sample.prototype = { onemethod: function () {}, anothermethod: function () { onemethod(); //Doesn't work
function sample() {} //constructor
sample.prototype = {
onemethod: function () {},
anothermethod: function () {
onemethod(); //Doesn't work
this.onemethod(); //Still the same
}
}
为了让它工作,你需要正确地使用它。需要通过调用构造函数
这样,
This
将表示s
(这是外部上下文,通常是窗口
)。This.onemethod()
起作用。此外,在提问时,请创建一个完整的示例,包括如何创建和调用该方法。this.onemethod()
正在工作alert/console.log
方法内部onemethod
研究javascript原型调用很简单:var s=new sample();您认为需要指定“this”关键字才能访问对象范围是正确的。您对onemethod()的第一次调用作为未定义引用失败。这将停止脚本的执行,因此不会调用正确的引用This.onemethod()。下面是一个根据Ben的建议进行自我完善的示例:
var s = new sample();
s.anothermethod();
// identical to
sample.anothermethod.apply(s);