是否可以使用eval()
评估JavaScript代码并确定该代码将无权访问某些对象?
例子:
(function(window, location){ eval('console.log(window, location)'); })()
上面的代码似乎无法通过引用直接访问该window
对象,因为它undefined
在该范围内。但是,如果另一个对象全局存在并且包含对的引用window
,则可以访问该对象。
如果我添加到window, location
可能包含对的引用的任何其他对象或变量window
,则所评估的代码是否能够引用该window
对象?
我正在尝试创建一个平台,可以在其中使用js文件上传用户应用程序,并以权限的形式提供对特定API的访问权限。
在JavaScript中,任何全局调用的函数(即不在对象上)都将其this
参数设置为全局对象(在窗口浏览器中)。所以这个片段:
(function(window, lovation) { eval('(function () { console.log(this) })()'); })()
打印出当前窗口对象
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句