我一直在javascript中使用它们......真的不知道区别.谷歌搜索总是显示"窗口对象"或"在javascript中打开一个新窗口"的结果,所以在那里找不到任何东西.
eval("v"+e)
window["v"+e]
Run Code Online (Sandbox Code Playgroud)
有时窗口适合我,有时候eval工作....
那么eval()和window []之间的区别是什么?
抱歉新手问题!
诺曼
CMS*_*CMS 11
另一个尚未解决的问题是,eval将使用调用者变量环境解析变量引用,例如:
var foo = "global";
(function () {
var foo = "local";
alert(eval("foo")); // alerts "local"
alert(window["foo"]); // alerts "global"
})();
Run Code Online (Sandbox Code Playgroud)
所以你可以看到,并不完全等同.
如果您只想引用全局变量,我建议您使用该window[prop]方法并避免意外.
eval()解释任意javascript语句,而使用窗口,您正在访问窗口对象的属性.
在您的示例中,您似乎在eval()和window []中都使用了属性名称.由于浏览器中的全局范围与窗口对象的范围相同,因此它们将评估相同的内容.
您可以将您的eval("v"+e)陈述视为等同于eval("window['v'" + e +" ]").
| 归档时间: |
|
| 查看次数: |
12700 次 |
| 最近记录: |