我是Typescript的新手,并试图将它介绍给我的一些东西,但是我对一些范围和箭头功能有困难。
在javascript中,我的代码看起来像这样......
var model = params.model;
model.Prototypes.bind('change', function(e){
// some code to execute when the event occurs
model.set([some values]); // this performs an operation to the actual top level model
});
好吧,这有两个问题。当我在打字稿中这样做时,我这样做......
class ClassName {
model: any;
subscribe() {
this.model.Prototypes.bind("change", function(e){
// FIRST PROBLEM
this.model ....
});
}
}
好吧,所以直到标记的部分为止。 this.model
不再是我认为的参考,因为它是在函数的上下文中,而不是'类'。所以我做了一些挖掘并学会了我应该使用arrow function
,因为这将保留上下文。
问题是,我无法想象如何执行箭头功能并仍然传递我需要的参数,例如绑定事件的change
值或function(e)
部分。我只看到了期望没有参数的例子。
答案 0 :(得分:2)
arrow / lambda语法如下所示:
class ClassName {
model: any;
subscribe() {
this.model.Prototypes.bind("change", e => {
// FIRST PROBLEM
this.model ....
});
}
}
如果您有多个参数,请使用以下格式:
(p1, p2, p3) => { ... }
希望这有帮助,