Javascript 在TypeScript函数中使用外部变量。
我有一个变量:Javascript 在TypeScript函数中使用外部变量。,javascript,angularjs,angular,chart.js,Javascript,Angularjs,Angular,Chart.js,我有一个变量: public originalData: Array<any> = []; 函数无法看到这个。originalData-如何在“onclick”方法中正确访问该变量和其他变量?我现在可以在函数之外执行此操作: canvas.onclick = function (evt) { console.log(this.originalData); } var dataCopy = this.originalData; 并通过“dataCopy”访
public originalData: Array<any> = [];
函数无法看到这个。originalData-如何在“onclick”方法中正确访问该变量和其他变量?我现在可以在函数之外执行此操作:
canvas.onclick = function (evt) {
console.log(this.originalData);
}
var dataCopy = this.originalData;
并通过“dataCopy”访问它,但是有没有一种方法可以访问变量,而不创建新的var变量?可能最好的方法是使用 与函数表达式相比,箭头函数表达式的语法更短,并且在词汇上绑定this值(不绑定自己的this、arguments、super或new.target) 对于您的应用程序,它如下所示:
canvas.onclick = (evt) => {
console.log(this.originalData);
};
甚至:
canvas.onclick = e => console.log(this.originalData);
也许最好的方法是使用 与函数表达式相比,箭头函数表达式的语法更短,并且在词汇上绑定this值(不绑定自己的this、arguments、super或new.target) 对于您的应用程序,它如下所示:
canvas.onclick = (evt) => {
console.log(this.originalData);
};
甚至:
canvas.onclick = e => console.log(this.originalData);
这在JavaScript中有点棘手。函数中的this指向函数。因为您使用的是typescript,所以可能有一个类来包装变量和函数。您可以尝试
ClassName.originalData
这在JavaScript中有点棘手。函数中的this指向函数。因为您使用的是typescript,所以可能有一个类来包装变量和函数。您可以尝试ClassName.originalData