2

是否有可能window通过自定义交换特殊的全局范围?我只是想with这样做,但它只会堆叠另一个“查找”范围。例如。

test={};
with(test){
    a=1;
}

不创建属性test.a,但是window.a.

那么该window对象具有我无法用自己的代码重新创建的特定于 JS 的特殊品质吗?

4

2 回答 2

2

如果属性存在于给定的对象上,with那么它将被修改,但永远不会被创建。这是使用的一个主要“陷阱”,with也是应该避免的主要原因。

于 2011-04-24T01:09:55.423 回答
0

with只有当传入的对象具有该属性时,才会对其进行修改。它不会被创建。

http://www.yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/

于 2011-04-24T01:09:57.043 回答