2014-02-20 88 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