function
person
(name,age)
function
change
(person)
var p =
newperson
('jason',18
)console.
log(p.name)
change
(p)console.
log(p.name)
控制台輸出jason
和lisa
原因:最開始,var p = new person('jason',18)
,因此p指向該物件的位址,所以,p.name = 'jason'
。接下來,將p傳入change
方法,相當於在方法內部var person = p
,此時,person物件也指向p所執行的位址,因此person也指向物件new person('jason',18)
。當更改person.name
時,等同於改變了p和person共同指向的物件的值jason
。接下來,person = new person('halson',19)
將person指向了新的記憶體位址,即new person('halson',19)
。而此時,p的指向不變還是('lisa',19)
。
JS引用型別
重新總結一遍,最近推薦vue給後端的小夥伴使用,涉及到引用物件的值一變全變的問題,比如說乙個列表繫結的data陣列,編輯某一條的表單資料的時候,直接取列表物件的話,在表單中值改變的同時,列表中的資料也跟著變了,這顯然不是我們想要的。這個問題的原因就在於js中的引用型別物件,於是有以下 親測結果 基本...
js 引用型別
建立object 例項的方法有兩種 1 使用new 操作符 varperson newobject person.name ema person.age 27 2 使用物件字面量表示法 varperson 1.1.2.1 建立日期物件 varsomedate newdate 日期字串 date.ut...
JS 引用型別
1 值型別 基本型別 數值 number 布林值 boolean null undefined string 在賦值傳遞中會以引用型別的方式來處理 2 引用型別 物件 陣列 函式。1.直接將引用型別賦值獲取到的是原變數的引用 let test1 let test2 let test3 test1 t...