我正在尝试使用eval函数进行动态分配。我知道这是不好的做法,并且已经修改了代码以不使用eval。不过,我不明白为什么它会以一种方式起作用,而不能以另一种方式起作用。
onFilterChosen(filterEmited: string, kind: string) {
eval("this.dbParams." + kind + " = filterEmited");
}
onFilterChosen(filterEmited: string, kind: string) {
eval("this.dbParams." + kind + " = " + filterEmited);
}
有人可以告诉我第二种方法有什么问题吗?
在第二个示例中,必须有一个变量,其名称为filterEmited的值。让我们举个例子,我们调用函数:
onFilterChosen('filter', 'abc');
将导致在第一个示例中执行此JS:
this.dbParams.abc = filterEmited
之所以有效,是因为该参数称为filterEmited
。而在第二个示例中,将执行以下命令:
this.dbParams.abc = filter;
并且由于没有变量“过滤器”,它可能会崩溃。
顺便说一句 发出的字母拼写为两个t!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句