1

我可以同时对多个对象使用“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;
    }
}
4

2 回答 2

5

不,第二个with将范围更改为secondVariable,您无法访问第一个。它会像 Drew Larson 展示的那样工作,但你不应该这样做。

with无论如何都不建议使用临时变量,因此示例代码将以这种方式编写(假设firstVariable并且secondVariable您不想只是这样做很麻烦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;
于 2013-03-12T06:27:08.830 回答
1

据我所知,第二个嵌套with在第一个的范围内。所以它确实有效。我制作了一个JSFiddle来证明这一点。然而,在我的直觉里,这整件事似乎很不对劲。

于 2013-03-12T06:48:05.693 回答