Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:从同一类的另一个方法访问类方法_Javascript_Oop - Fatal编程技术网

Javascript:从同一类的另一个方法访问类方法

Javascript:从同一类的另一个方法访问类方法,javascript,oop,Javascript,Oop,新手使用javascript编写类,但无法解决此问题。实际上,anothermethod可以返回一个回调到构造函数,然后我可以从那里调用一个方法,但也许有一个更简单的方法 function sample() {} //constructor sample.prototype = { onemethod: function () {}, anothermethod: function () { onemethod(); //Doesn't work

新手使用javascript编写类,但无法解决此问题。实际上,anothermethod可以返回一个回调到构造函数,然后我可以从那里调用一个方法,但也许有一个更简单的方法

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);