请使用以下代码:
var a = new Object(); a.meep = 5; function foo() { with (a) { function bar() { return meep; } return bar(); } }
这样的代码在Chrome中对我失败并在Firefox中工作。哪个是对的?
答案 0 :(得分:1)
正确的做法是永远不要使用with
。永远。用任何语言。
多年来导致的错误数量和浪费的开发时间with
......应该位于goto
下方的黑名单中。
如果您确实不想键入,请使用代码完成或将长表达式指定给短变量。那就是说,我觉得这很重要。它适合Javascript的其他魔术范围。 :)
答案 1 :(得分:0)
作为一般建议:不要使用。
但是,要让您的代码在Chrome中运行,请更改:
var a;
为:
var a=new Object();
和
function bar() {
为:
var bar = function() {
提供完整的代码:
var a=new Object();
a.meep = 5;
function foo() {
with (a) {
var bar = function() {
return meep;
}
return bar();
}
}