一、基本資料型別: Number, String等都是按值傳遞
var a = 10 function add(num){ num+=10 } add(a) console.log(a)
最后輸出a時,仍然是10,說明a與函式內部的num互不干擾,其實此時可以把命名引數看成是區域引數,函式運行結束,它也隨之銷毀,而它是按值傳遞的,復制了記憶體中的一份值給num,所以內部對num的操作不影響全域變數a的值,
二、參考變數賦值
1.多個參考變數指向同一個物件, 通過一個參考變數修改物件內部資料, 另一個參考變數訪問到的是修改后的物件
var obj1 = {} var obj2 = obj1 obj2.name = 'Tom' console.log(obj1.name)//Tom
function f1(obj) { obj.age = 12 } f1(obj2) console.log(obj1.age)//12
都是修改的同一個物件的屬性
2. 多個參考變數指向同一個物件,讓一個參考變數指向另一個物件, 另一個參考變數還是指向原來的物件
var obj3 = {name: 'Tom'} var obj4 = obj3 obj3 = {name: 'JACK'}//obj3指向了另一個物件,此時obj4還是指向原來obj3當初指向的物件 console.log(obj4.name)//Tom function f2(obj) { obj = {name: 'Bob'} }
f2(obj4) console.log(obj4.name)//Tom
執行 f2(obj4) 時,obj指向obj4的地址,然后在函式體內obj又指向了另一個物件,obj4不受影響,
from:https://blog.csdn.net/weixin_39728230/article/details/80607294
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/100507.html
標籤:JavaScript
