如何使用嵌套的'with'关键字

时间:2013-03-12 06:18:17

标签: javascript

我可以同时对多个对象使用'with'关键字吗?我试图嵌套它们,但失败了。那么最好的方法应该是什么呢?

var firstVariable ={a: 0, b: 0, c:0};
var secondVariable ={qw :98, ety :367, hg: 356};

with(firstVariable){
    with(secondVariable){  
        a = qw;
        b = ety;
        c = hg;
    }
}

2 个答案:

答案 0 :(得分:5)

不,第二个with将范围更改为secondVariable,您无法访问第一个。它会像Drew Larson所示,但你不应该'做到了。

不建议使用

with,而应该使用临时变量,因此示例代码将以这种方式编写(假设firstVariablesecondVariable非常麻烦,你不想要只做firstVariable.a = secondVariable.qw):

var firstVariable ={a: 0, b: 0, c:0};
var secondVariable ={qw :98, ety :367, hg: 356};

var o1 = firstVariable;
var o2 = secondVariable;

o1.a = o2.qw;
o1.b = o2.ety;
o1.c = o2.hg;

答案 1 :(得分:1)

据我所知,第二个嵌套with在第一个嵌套范围内。所以它确实有效。我做了JSFiddle来证明这一点。然而,在我的直觉中,这一切似乎都是错误的。