2014-02-20 77 views
2

这个问题已经有几个答案(排序):Javascript:var = var = function多行变量分配在一行等,但我想问一个不同种类的关于它的问题。Javascript多变量赋值

所以,这是非常方便,能够使用:

var av = 0, bb; 
var cvs = bb = av; 
console.log(cvs,bb) // outputs 0 0 

我的问题是,浏览器跨这是怎么?我可以逃脱使用这种无处不在,包括IE6或诸如此类的东西,或者我应该只是坚持:

var av = 0, bb; 

bb = av; cvs = av; 

,如果你在代码中的任何一点改变一个变量,这是否意味着其他变量也改变了,还是在初始任务之外没有连接?

谢谢!

+1

它是跨浏览器。 – zerkms

+2

它是JavaScript的一部分,所以它应该在实现JavaScript的浏览器中工作。 – K3N

回答

0

要回答你的第二个问题:

如果你在代码中的任何一点改变一个变量,这是否意味着其他变量是否也改变了,或者在初始分配之外没有连接?

这很容易测试:

var av = 0, bb; 
var cvs = bb = av; 
console.log(av, cvs, bb); // outputs 0 0 0 

cvs = 1; 
console.log(av, cvs, bb); // outputs 0 1 0 

bb = 2; 
console.log(av, cvs, bb); // outputs 0 1 2 

av = 3; 
console.log(av, cvs, bb); // outputs 3 1 2 

所以有初始分配外没有任何联系。

+0

这是不正确的。在这种情况下,对象通过引用传递。 – Whatcould