将Javascript置于严格模式时,不再允许使用“with”语句。我怎么能复制它的目的呢?
例如,在搜索变量之前让它搜索数组......
var a = {x:1, y:2};
var x = 3;
with (a) {
console.log(x);
}
控制台将显示1.但在严格模式下,必须删除“with”。如果控制台语句在它之外,它将显示3。
答案 0 :(得分:1)
答案 1 :(得分:0)
严格模式重新定义了Javascript的某些部分,旨在消除一些歧义和不兼容性。您无法 use strict
,然后期望受影响的语言项目仍可用。
使用with
会导致变量范围模糊不清 - 在您的示例中已经很明显 - 并且与ES6及更高版本中的建议标准不向前兼容。您可以在MDN网站here
在您的具体示例中,您始终可以console.log(a.x);