export class MyClass {
myFuncA(msg){console.log('A: '+msg); console.log('this: ',this);}
myFuncB(msg){console.log('B: '+msg); console.log('this: ',this);}
}
我有一个名为mc
的类实例;我需要一种方法来执行Typescript
类的动态命名函数。
这会正确执行该功能:
export class CallingClass {
constructor(){
let mc = new MyClass();
mc['myFuncA'].call(); // outputs 'A: undefined' 'this: undefined'
}
}
我有3个问题:
mc['myFuncA'].call('message')
无效this
设为CallingClass
? mc[...].call(...).bind(this)
错误this
设为MyClass
?答案 0 :(得分:1)
我如何提供论据? mc [' myFuncA']。来电('消息')无法正常工作
就像正常的函数调用一样
mc['myFuncA']('message')
或者如果你真的想使用call
mc['myFuncA'].call(mc, 'message')
如何将其设置为CallingClass? mc [...]。call(...)。bind(this)errors
将其作为第一个参数传递给call
mc['myFuncA'].call(this, 'message')
这就是你如何使用bind
mc['myFuncA'].bind(this)('message')
如何将其设置为MyClass?
mc['myFuncA'].call(mc, 'message')
是
mc['myFuncA']('message')