Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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_Typescript_Angular - Fatal编程技术网

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

天哪,它工作得很好!里努库苏,你是一个天才和学者。非常感谢你!祝你今天过得非常愉快。哈哈,没问题-你也一样!:)天哪,它工作得很好!里努库苏,你是一个天才和学者。非常感谢你!祝你今天过得非常愉快。哈哈,没问题-你也一样!:)