JavaScript eval()方法的替代方法
eval()
方法用于评估或实现参数。如果参数是断言,则表达式由 eval()
评估,如果参数包含一个或多个 JavaScript 语句,eval()
将执行它们。
使用 eval()
,恶意代码可以在未经你许可的情况下在你的应用程序中运行,并且第三方代码可以看到你的应用程序的范围,从而可能导致攻击。
在 JavaScript 中使用 eval()
方法的替代方法
JavaScript 是一种非常灵活的语言。在极少数情况下 eval()
是任何给定问题的正确答案,这里当然不需要。
例如,如果 s
和 k
变量是对象的一部分,你可以使用字符串下标来访问它们。因此,你可以使用变量作为下标,从而动态引用 newobj
中的任何元素。
代码:
var newobj = {s : 20, k : 30};
var value1 = 's';
var value2 = 'k';
alert( newobj[value1] + newobj[value2] );
输出:
没有必要使用 eval()
方法。你可以用任何你想要的方式构造 value
字符串,给你几乎无限的灵活性。
如果 s
和 k
变量是全局变量,你可以使用这种技术,因为 JS 全局变量是浏览器中窗口对象的子对象。
具体来说,你的全局变量可以通过 window.s
或 window['s']
访问,后者允许你执行与上述相同的 dynamicProperty
技巧。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。