从本地函数打字稿调用全局方法
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?
我对打字稿编码还很陌生,但到目前为止,我已经掌握了编码的先验知识,但我遇到了一个问题,我无法找到一个可以理解的答案......我思考。
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?