【发布时间】:2010-12-28 05:17:36
【问题描述】:
可能重复:
Are there legitimate uses for JavaScript’s “with” statement?
我最近发现在 JavaScript 中,可以执行以下操作:
with (document) {
write('foo');
body.scrollTop = x;
}
这样做的缺点是需要检查每个变量是否属于文档对象,从而产生很大的开销。
或者,可以这样做:
var d = document;
d.write('foo');
d.body.scrollTop = x;
在哪些情况下使用'with'关键字是合理的?
【问题讨论】:
-
这里有一些支持 with 关键字的博客文章。但也请阅读 azazul 发布的 YUI 博客条目! http://webreflection.blogspot.com/2009/12/with-worlds-most-misunderstood.htmlhttp://webreflection.blogspot.com/2009/12/with-some-good-example.html
-
@Abel,你说得对,这很好地回答了我的问题,同时也提出了一个巨大的警告。
-
@Annie:我认为您应该在此处粘贴一些引号,而不是简单地链接两篇相关文章。如果它们稍后导致 404(或类似)HTTP 代码(例如,因为这些文章被移动/删除)怎么办?
-
不推荐使用
with,并且在ECMAScript 5严格模式下被禁止。推荐的替代方法是将要访问其属性的对象分配给临时变量。 来源:Mozilla Developer Network
标签: javascript