将回调函数分配给变量,并在高阶函数之外调用
Assign callback function to a variable and call outside of higher-order function
我想给组件变量分配一个回调函数。。。例如
...
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.myCompVar"时,会出现一个错误,说它是未定义的。这让我很困惑,因为我已经确认回调在"myFunc"中被正确设置,并且它的类型是"function"在调用"myFunc"并返回后,myOtherFunc也将被调用,如预期的那样。
非常感谢您的帮助!
使用function
会丢失正确的this
上下文。我建议使用lambda(胖箭头函数),它正确地绑定到正确的this
上下文:
myFunc = (callback: (number) => void): void => {
this.myCompVar = callback;
}
相关文章:
- JavaScript 中的高阶函数
- 避免在JS中重复使用高阶函数
- 回调和高阶函数Javascript
- 什么's将命名函数传递给Javascript的正确方法's的高阶函数
- Javascript如何使用高阶函数和Map/Reduce函数来汇总多个数组
- 使用JavaScript中的高阶函数概念,用Python编写纯函数代码
- 在高阶函数 JavaScript 中传递参数
- 如何在 Javascript 中使用高阶函数反转数组
- Eloquent JavaScript,第 2 版,第 5 章高阶函数
- JS中的高阶函数
- GHCJS:如何使用 FFI 导入高阶 JavaScript 函数
- 这个高阶函数有什么问题
- 如何在 Indesign 脚本中使用像 Array.reduce() 这样的高阶函数
- 此函数如何修改另一个函数?(高阶函数)
- 在es6类中从高阶函数中定义一个方法
- 将其绑定到高阶函数中的原始对象
- 高阶函数中的Javascript对象克隆
- 通过更改起始索引并使用Javascript中的高阶函数递增2来操作2D数组
- 将函数传递给另一个函数时的高阶函数说明
- 了解Javascript中的高阶函数