我有这个变量:
public originalData: Array<any> = [];
和这个功能:
canvas.onclick = function (evt) {
console.log(this.originalData);
}
该函数无法看到this.originalData - 如何在我的'onclick'方法中正确访问该变量和其他变量?我现在可以在函数之外执行此操作:
var dataCopy = this.originalData;
并通过'dataCopy'访问它,但有没有办法访问变量而不用创建一个新的var变量?
答案 0 :(得分:2)
可能最好的方法是使用the ES6 arrow function。
与函数表达式相比,箭头函数表达式具有更短的语法,并且词汇绑定此值(不绑定它自己的this,arguments,super或new.target)。
对于您的应用程序,它看起来像这样:
canvas.onclick = (evt) => {
console.log(this.originalData);
};
甚至:
canvas.onclick = e => console.log(this.originalData);
答案 1 :(得分:0)
这在JavaScript中有点棘手。函数中的这个指向函数。由于您使用的是typescript,因此您可能有一个类来包装变量和函数。您可以尝试ClassName.originalData