![]() |
1
56
:否。如果它在全局范围内,则它可用于任何对象。
长话短说
我必须再次强调:
|
![]() |
2
7
Shog9的答案很好。但是如果您的代码只是一个表达式,那么代码将被执行,并且不会返回任何内容。对于表达式,使用
以下是如何使用它:
它会回来的
如果不确定要执行的代码是表达式还是语句,可以将它们组合起来:
|
![]() |
3
6
看见
http://jsfiddle.net/PRh8t/
举个例子。注意
|
![]() |
4
3
你不能限制评估的范围 顺便说一句,见 this post 也许有其他的方法来完成你想要完成的事情,但你不能以任何方式限制评估的范围。您可能能够在javascript中隐藏某些变量作为伪私有变量,但我认为这不是您想要的。 |
![]() |
5
3
有一个项目叫做Google Caja。您可以使用Caja“沙箱”第三方javascript。 https://developers.google.com/caja/ |
![]() |
6
3
有个主意。如果您使用静态分析器(您可以使用它构建)会怎么样 esprima ,例如)来确定评估代码使用哪些外部变量,并为它们设置别名。所谓“外部代码”,我指的是评估代码 但事实并非如此 声明
其中,safeEval返回使用阻止访问外部变量的上下文修改的javascript字符串:
现在,您可以使用此功能执行以下几项操作:
请注意
|
![]() |
7
2
不要使用
没什么可怕的,正如你所见。 |
![]() |
8
2
不要执行你不信任的代码。Globals总是可以访问的。
这相当于:
|
![]() |
9
1
我意外地发现我可以使用代理来限制scope对象,将变量屏蔽在范围之外似乎要容易得多。我不确定这种方法是否有缺点,但到目前为止,它对我很有效。
|
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |