从本地函数打字稿调用全局方法

Calling global method from a local function typescript

我对打字稿编码还很陌生,但到目前为止,我已经掌握了编码的先验知识,但我遇到了一个问题,我无法找到一个可以理解的答案......我思考。

myMethod1(){
  function mySubMethod(){
  //Call myMethod2 here.
  }
}
myMethod2(){
//do something
}

这可能吗? 对此感到抱歉,谢谢。

是的,这是完全可能的,因为 mySubMethod 是在 嵌套的范围内声明的 声明 myMethod2 的范围内。内部范围可以访问外部范围绑定,而不是相反。

不过您确实需要正确声明函数:

function myMethod1(){
    function mySubMethod(){
        myMethod2();
    }
    mySubMethod();
}
function myMethod2(){
    console.log("myMethod2 ran");
}
myMethod1();


旁注:如图所示,您拥有的是 函数 ,而不是 方法 。方法与对象关联。


在您澄清的评论中:

myMethod1 and myMethod2 are methods and mySubMethod is a function and not a method

听起来像这样:

class Example {
    myMethod1(){
        function mySubMethod(){
            this.myMethod2();
        }
        mySubMethod.call(this);
        
        // Easier with an arrow function:
        const mySubFunction = () => {
            this.myMethod2();
        };
        mySubFunction();
    }
    myMethod2(){
        console.log("myMethod2 ran");
    }
}
const e = new Example();
e.myMethod1();

主要是关于在这种特殊情况下管理 this。更多:

  • How to access the correct this inside a callback?
  • How does the “this” keyword work?