更改 JavaScript 范围
是否有可能通过自定义范围来交换特殊的全局 window
范围?我只是认为 with
是有意义的,但它只堆叠另一个“查找”范围。例如。
test={};
with(test){
a=1;
}
不会创建属性 test.a
,而是创建 window.a
。
那么 window
对象具有 JS 特定的特殊品质,我无法使用自己的代码重新创建?
Is there any posibility to exchange the special global window
scope by a custom one? I just thought with
is meant to, but it only stacks another "lookup" scope. Eg.
test={};
with(test){
a=1;
}
does not create the property test.a
but window.a
.
So the window
object has a JS-specific special quality I cannot recreate with own code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果该属性存在于给定
with
的对象上,那么它将被修改,但永远不会被创建。这是使用with
的一个主要“陷阱”,也是应该避免的主要原因。If the property exists on the object given to
with
then it will be modified, but it will never be created. This is a major "gotcha" with usingwith
and the primary reason it should be avoided.使用
with
仅当传入的对象具有该属性时,才会对其进行修改。它不会被创建。http://www.yuiblog.com/blog/ 2006/04/11/with-statement-considered-harmful/
With
with
only if the object passed in has that property, will it be modified. It will not be created.http://www.yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/