Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在TypeScript函数中使用外部变量。_Javascript_Angularjs_Angular_Chart.js - Fatal编程技术网

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