为什么要写`window["eval"].调用(窗口,数据);` [英] Why write `window[ "eval" ].call( window, data );`
问题描述
jQuery 1.7rc1 的第 614 行:
Line 614 of jQuery 1.7rc1:
window[ "eval" ].call( window, data );
为什么不简单地写
eval.call( window, data );
?
推荐答案
答案在这里:解码 jQuery,
Jim Driscoll 发现对于更符合标准的浏览器,你可以使用 eval.call(window,data),但对于 Chrome 和 IE,事情有点不同.
Jim Driscoll found out that for more standards-respecting browsers, you could use eval.call(window,data), but for Chrome and IE, things are a bit different.
Internet Explorer:似乎 IE 使用 window.execScript(data)
Internet Explorer: It seems that IE uses window.execScript(data)
Chrome: eval.call(window,data) 在 Chrome 上中断,但是 window[ "eval"].call( window, data) 适用于 Chrome 以及其他非 IE浏览器,这是上述解决方法的基础.
Chrome: eval.call(window,data) breaks on Chrome, but window[ "eval" ].call( window, data) works on Chrome, and as well as other non-IE browsers, this is how the above workarounds based upon.
这篇关于为什么要写`window["eval"].调用(窗口,数据);`的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!