【发布时间】:2014-09-03 09:13:27
【问题描述】:
将 Javascript 置于严格模式时,不再允许使用“with”语句。我怎么能复制它的目的?
例如,让它在搜索变量之前搜索数组...
var a = {x:1, y:2};
var x = 3;
with (a) {
console.log(x);
}
控制台将显示 1。但在严格模式下,必须删除“with”。如果控制台语句在它之外,它将显示 3。
【问题讨论】:
-
不要。他们出于某种原因在严格模式下将其关闭。或者,禁用严格模式。
-
我怎样才能用上锁的枪射自己的脚?你不能。这就是重点!!!!
-
with是一场噩梦。不要使用它。 -
来自with docs - 不推荐使用 with 语句,因为它可能是混淆错误和兼容性问题的根源。有关详细信息,请参阅下面“描述”部分中的“歧义骗局”段落。
-
@cookiemonster - 它会产生歧义。比如
with中的console.log应该会报错,因为没有a.console,但它确实有效。
标签: javascript with-statement strict