在TypeScript函数中使用外部变量。

时间:2016-07-18 18:20:46

标签: javascript angularjs angular chart.js

我有这个变量:

public originalData: Array<any> = [];

和这个功能:

canvas.onclick = function (evt) {
            console.log(this.originalData);
}

该函数无法看到this.originalData - 如何在我的'onclick'方法中正确访问该变量和其他变量?我现在可以在函数之外执行此操作:

var dataCopy = this.originalData;

并通过'dataCopy'访问它,但有没有办法访问变量而不用创建一个新的var变量?

2 个答案:

答案 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