Javascript 将回调函数分配给变量,并在高阶函数外部调用
我想给一个组件变量分配一个回调函数。。。例如Javascript 将回调函数分配给变量,并在高阶函数外部调用,javascript,typescript,angular,Javascript,Typescript,Angular,我想给一个组件变量分配一个回调函数。。。例如 ... export class MyComponent { private myCompVar: any; myFunc = function(callback: (number) => void): void { this.myCompVar = callback; } } …然后稍后从MyComponent中的另一个函数中调用此回调函数。例如: ... export
...
export class MyComponent {
private myCompVar: any;
myFunc = function(callback: (number) => void): void {
this.myCompVar = callback;
}
}
…然后稍后从MyComponent中的另一个函数中调用此回调函数。例如:
...
export class MyComponent {
private myCompVar: any;
...
myOtherFunc(event): void {
...
this.myCompVar(callbackParam);
}
}
然而,当我像上面那样实现它时,当我试图在“myOtherFunc”中调用它时,会出现一个错误,指出“this.mycopvar”是未定义的。这让我感到困惑,因为我已经确认回调在“myFunc”中被正确设置为它,并且它的类型是“function”在调用“myFunc”并按预期返回后,也会调用“myOtherFunc”
非常感谢您的帮助 使用
函数
会丢失正确的上下文。我建议改为使用lambda(fatarrow函数),它正确地绑定到右边的上下文:
myFunc = (callback: (number) => void): void => {
this.myCompVar = callback;
}
使用函数
会丢失正确的上下文。我建议改为使用lambda(fatarrow函数),它正确地绑定到右边的上下文:
myFunc = (callback: (number) => void): void => {
this.myCompVar = callback;
}
天哪,它工作得很好!里努库苏,你是一个天才和学者。非常感谢你!祝你今天过得非常愉快。哈哈,没问题-你也一样!:)天哪,它工作得很好!里努库苏,你是一个天才和学者。非常感谢你!祝你今天过得非常愉快。哈哈,没问题-你也一样!:)