在我的js代码文件中,当我在严格模式下使用语句时,它显示错误:
'与'在严格模式下是不允许的。
答案 0 :(得分:0)
严格模式由于多种原因而不允许with
语句。 Douglas Crockford在其着名的this question帖子中概述了其中一些内容:简短版本是当您在with
中使用标识符时,仅通过查看代码(静态分析)是不可能的。什么会解决,因为它解决的内容取决于相关对象的内容。
考虑:
with (o1) {
with (o2) {
with (o3) {
foo = "bar";
}
}
}
会发生什么?这个设置是o3.foo
吗? o2.foo
? o1.foo
?全球foo
?
这使我们人类很难或不可能推理代码,并使JavaScript引擎难以或不可能有意义地优化代码。
答案 1 :(得分:0)
建议不要使用with语句,因为它可能是令人困惑的错误和兼容性问题的根源,是否在严格模式下禁止使用 最佳实践:不要使用with语句。而是尝试使用with Statement Considered Harmful
IIFE:1
您还可以查看http://2ality.com/2011/02/javascript-variable-scoping-and-its.html