无法从Javascript中的另一个方法内部调用方法

无法从Javascript中的另一个方法内部调用方法,javascript,class,oop,methods,prototype,Javascript,Class,Oop,Methods,Prototype,检查下面的代码,我在这里迷路了,为什么会出现这个错误。有什么建议吗。 在这里,我做了一个类测试,并添加了两个方法check和nextfn。我打电话到下一站查收 var test=function(){} test.prototype.check=function() { console.log("hello from checking"); } test.prototype.nextFn=function(){ check(); console.log("Hello from

检查下面的代码,我在这里迷路了,为什么会出现这个错误。有什么建议吗。 在这里,我做了一个类测试,并添加了两个方法check和nextfn。我打电话到下一站查收

var test=function(){}

test.prototype.check=function()
{
  console.log("hello from checking");
}

test.prototype.nextFn=function(){

  check();

  console.log("Hello from nextfn");
}
下一个

错误是

Uncaught ReferenceError: check is not defined(…)

现在考虑另一种情况;

test.prototype.anotherFn=function()
{
    var p=new Promise(function(){
         this.check();
    })
}
现在也得到了同样的错误

Uncaught ReferenceError: check is not defined(…)
打电话的时候

var t=new test();
t.anotherFn();

check
功能位于
test
对象的顶部

当您像这样调用
nextFn
时:

t.nextfn();
接下来的范围将绑定到“type”
test
t
实例。在
nextfn
中访问
test
的原型将通过

因此,请使用此
访问
检查

this.check();
这些东西会令人惊讶地困惑。一个好的参考是

====

对于您的第二个场景,问题是您试图从具有自己作用域的函数中调用
this

JavaScript中的作用域通常不是块作用域,而是函数作用域。还有很多内容,我建议阅读闭包教程以获得更全面的描述,但现在,请尝试以下内容:

test.prototype.anotherFn=function()
{
    var self = this; // save reference to current scope
    var p=new Promise(function(){
         self.check(); // use self rather than this
    })
}

this.check()
另外,
newtest()
代替了
newtext()
扩展@Igor comment,将
check
方法放在测试原型上
nextFn
是同一个原型的一部分,
这个
是指父级/原型的关键字。工作正常,现在在我的问题中添加了另一个场景;请你也澄清一下这个问题好吗。据我所知,这将是p的范围。但是如何调用函数检查呢?@KOUSIKMANDAL我更新了问题第二部分的答案
test.prototype.anotherFn=function()
{
    var self = this; // save reference to current scope
    var p=new Promise(function(){
         self.check(); // use self rather than this
    })
}