当将Javascript设置为严格模式时,不再允许使用"with"语句。我该如何复制它的作用?
例如,如何使其在搜索变量之前搜索数组...
控制台将显示1。但在严格模式下,必须删除“with”。如果控制台语句在其外部,则将显示3。
例如,如何使其在搜索变量之前搜索数组...
var a = {x:1, y:2};
var x = 3;
with (a) {
console.log(x);
}
控制台将显示1。但在严格模式下,必须删除“with”。如果控制台语句在其外部,则将显示3。
with
没有任何问题。就像我们掌握的其他工具一样。让我们不再恐慌。 - cookie monsterwith
中的console.log
应该会因为没有a.console
而导致错误,但实际上它却能正常工作。 - Derek 朕會功夫location
并没有提供任何意外的结果。或者至少不会比在任何其他嵌套作用域中更加意外。这里有一个没有使用with
的类似示例。http://jsfiddle.net/34kfz/2/ 对于location
也是相同的结果。 - cookie monster