js函數傳參,按值傳遞,按引用傳遞

按值傳遞

函數的形參是所傳實參的拷貝值,形參的值發生改變不會影響實參。bash

let a=1;
function foo(a){
    a=2;
    console.log(a); // 2
}
foo(a);
console.log(a); // 1
複製代碼

按引用傳遞

函數的形參是所傳實參的隱式引用,形參的值發生改變會影響實參。函數

var obj1={name:"lisa"};
 var obj2={name:"jennie"};
function foo(obj){
    obj.name="huahua";
    obj=obj2;
    console.log(obj.name); // jennie
}
foo(obj1);
console.log(obj1.name); // huahua
複製代碼

棧——> 堆ui

obj1——> name:"lisa"spa

obj2——> name:"jennie"code

函數執行後string

obj/obj1——> name:"huahua"io

obj——> name:"jennie"console


js傳參是按值傳遞function

function setValue(obj) {
    obj.name = "111";
    var obj = new Object();
    obj.name = "222";
    return obj;
}
let newObj = new Object();
newObj.name = "333";
let result = new setValue(newObj);
console.log(newObj.name); // 111
console.log(result); // {name:"222"}
console.log(result.name); // 222
複製代碼
相關文章
相關標籤/搜索