ecmascript中所有引數傳遞都是值,不可能通過引用傳遞引數
var obj = '111';
function ddd(obj)
ddd(obj);
console.log(obj);
輸出: 111
const obj2 =;
//let obj2 =;
//var obj2 =;
function ddd(obj)
ddd(obj2);
console.log(obj2);
輸出:
來2張就很形象了
引用物件也是傳值,只是它傳的是位址。
最終輸出的仍為"roddan" ,進一步說明是值傳遞。
而obj = new object() 相當於區域性變數,函式呼叫完成後被銷毀,換種說法 它只是自己空間儲存的位址將會被新的物件的儲存位址所覆蓋,因為是傳值不是引用,所以它不會影響到student空間所儲存的位址。
紅寶書真的是好東西呀,只是看著太無聊了。(今天抽時間看看this)
參考:
js 引數傳遞方式 按值傳遞
訪問變數有按值和按引用兩種方式,基礎資料型別按值訪問,引用資料型別按引用 即指標或位址 訪問。但引數只能按值傳遞,在向引數傳遞基本型別的值時,被傳遞的值會被複製給命名引數,引用型別時,傳遞的是它指標內儲存的值 借用網上的乙個例子 function setname obj var person new...
Python引數傳遞 引用傳遞 值傳遞
值傳遞 方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際引數的值。a1 520 a2 a1 print a1 520 print a2 520 a2 a1 1 print a2 521 print a1 520 引用傳遞 也稱位址傳遞,在方法呼叫時,實際上是把引...
JS引數傳遞
基本資料型別的傳遞 function changenum num function changestr str 作為引數傳遞的變數不因為引數值的改變而改變 let num 2 let numret changenum num console.log num,numret 2 3 let str he...