Fra*_*ank 6 eval this typescript angular
所以我在理解 eval 如何在打字稿/角度中使用它时遇到了问题。有人可以帮我让评估在这里工作吗?这只是一个演示程序,因此请忽略逻辑没有意义的事实。我只想让 eval 使用动态值更新动态数组。
https://stackblitz.com/edit/angular-pfyt7q?file=src%2Fapp%2Fapp.component.ts
export class AppComponent {
arrTest1 = [];
arrTest2 = [];
arrTest3 = [];
constructor() {
this.TestClass.Run("this.arrTest1 = [1];");
this.TestClass.Run("this.arrTest2 = [2];");
this.TestClass.Run("this.arrTest3 = [3];");
console.log(this.arrTest1); //Logs: [] (I want: [1])
console.log(this.arrTest2); //Logs: [] (I want: [2])
console.log(this.arrTest3); //Logs: [] (I want: [3])
};
TestClass = {
Run : (pString) => {
(0, eval)(pString);
eval(pString);
}
};
}
Run Code Online (Sandbox Code Playgroud)
PS:eval函数非常危险,应谨慎使用!
但是,因为我很友善,我将向您展示如何使您的代码工作:为了指定 eval 函数的上下文,您可以使用 call javascript 函数,如下所示:
this.TestClass.Run.call(this, "this.arrTest2 = [2];");
Run Code Online (Sandbox Code Playgroud)
PS2:通常,您不需要使用 eval 函数,即使不给出所需行为背后的整个代码,您也可以进行解释,并且人们可以帮助您弄清楚如何使其工作。
编辑:如果您想要的行为是拥有动态数组/值,您可以使用一个简单的对象并向其动态添加属性。假设您的对象是 A:您可以使用 A[varName] 动态创建对象属性。
| 归档时间: |
|
| 查看次数: |
9446 次 |
| 最近记录: |