js值傳遞和引用傳遞的區(qū)別 JavaScript中函數(shù)都是值傳遞嗎?
JavaScript中函數(shù)都是值傳遞嗎?在JavaScript中,傳遞變量就是傳遞值。如果傳遞一個對象,它就是引用傳遞。我們別說太多。上面的代碼:調(diào)用fun函數(shù)并傳遞變量A。在函數(shù)中傳遞的參數(shù)A增加1
JavaScript中函數(shù)都是值傳遞嗎?
在JavaScript中,傳遞變量就是傳遞值。如果傳遞一個對象,它就是引用傳遞。我們別說太多。上面的代碼:
調(diào)用fun函數(shù)并傳遞變量A。在函數(shù)中傳遞的參數(shù)A增加1后,全局變量A的值仍然是5。這表示在參數(shù)傳遞過程中,只傳遞a的值,屬于傳遞值。
object obj屬性age的原始值為20。調(diào)用函數(shù)并傳遞obj以在函數(shù)中更改它。obj對象的age屬性的值是30。調(diào)用函數(shù)后,輸出obj對象的age屬性。發(fā)現(xiàn)該值也變?yōu)?0,表示參數(shù)objectObj和Obj在內(nèi)存中,指向同一地址區(qū),屬于引用傳遞。
Javascript傳遞參數(shù)如果是object的話,是按值傳遞還是按引用傳遞呢?
通過引用傳遞
javascript包含兩個數(shù)據(jù)類型值,基本類型值和引用類型值
基本類型值包括:未定義、null、Boolean、number和string,通過值訪問。
引用類型的值是內(nèi)存中保存的對象。JavaScript不允許直接訪問內(nèi)存中的對象,也就是說,它不能直接操縱對象的內(nèi)存空間。操縱對象時,實際上是操縱對象的引用,而不是實際對象。(向?qū)ο筇砑訉傩詴r,對實際對象進行操作。)因此,引用類型的值是通過引用訪問的。
var obj1=new Object()
var obj2=obj1
obj1.name=“zhangsan”
警報(obj2.name)//“zhangsan”