js傳遞引數都是值傳遞

2021-09-18 07:16:21 字數 817 閱讀 6264

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...