从 TypeScript 访问 JavaScript "this"
Access JavaScript "this" from TypeScript
我目前正在我的打字稿项目中使用 AlpacaJS 库。这个 JavaScript/JQuery 库包含在我的 Typescript class 中,并希望我在 json 样式对象中传递一些选项,如下所示:
this.options = {
"collapsible": false,
"fields": {
"id": {
"events": {
"change": function () {
console.log(this.getValue());
}
}
}
}
};
传递这个对象我说:在 alpaca 生成的表单中向字段 "id" 添加一个更改事件。在那个函数中使用 "this" 给我库的 "this",而不是打字稿 class "this".
问题:如果我想在 Typescript class 中调用方法或变量怎么办?我将不得不使用 "this",但是 "this" 绑定到 alpaca/javascript 这个。我无法将其更改为 (event) => { ... }
或 { ...}.bind(this)
,因为那样我可以访问打字稿 "this",但我无法访问 alpaca/javascript 这个,我需要两者他们....
i CAN'T access the alpaca/javascript this, i need both of them
在创建函数之前使用标准 javascript 捕获 this
的技巧:
let _self = this;
this.options = {
"collapsible": false,
"fields": {
"id": {
"events": {
"change": function () {
console.log(_self.getValue()); // the class instance
console.log(this); // the lib version
}
}
}
}
};
此提示也记录在此处:https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html
我目前正在我的打字稿项目中使用 AlpacaJS 库。这个 JavaScript/JQuery 库包含在我的 Typescript class 中,并希望我在 json 样式对象中传递一些选项,如下所示:
this.options = {
"collapsible": false,
"fields": {
"id": {
"events": {
"change": function () {
console.log(this.getValue());
}
}
}
}
};
传递这个对象我说:在 alpaca 生成的表单中向字段 "id" 添加一个更改事件。在那个函数中使用 "this" 给我库的 "this",而不是打字稿 class "this".
问题:如果我想在 Typescript class 中调用方法或变量怎么办?我将不得不使用 "this",但是 "this" 绑定到 alpaca/javascript 这个。我无法将其更改为 (event) => { ... }
或 { ...}.bind(this)
,因为那样我可以访问打字稿 "this",但我无法访问 alpaca/javascript 这个,我需要两者他们....
i CAN'T access the alpaca/javascript this, i need both of them
在创建函数之前使用标准 javascript 捕获 this
的技巧:
let _self = this;
this.options = {
"collapsible": false,
"fields": {
"id": {
"events": {
"change": function () {
console.log(_self.getValue()); // the class instance
console.log(this); // the lib version
}
}
}
}
};
此提示也记录在此处:https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html