色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 引用參數(shù)

錢瀠龍1年前7瀏覽0評論
Javascript中有兩種參數(shù)傳遞方式,分別是值傳遞和引用傳遞。值傳遞是指傳遞的是一個(gè)變量的副本,因此在函數(shù)內(nèi)部對該變量進(jìn)行修改不會影響原變量的值。而引用傳遞則是指傳遞的是該變量的引用,因此在函數(shù)內(nèi)部對該變量進(jìn)行修改會影響原變量的值。本文將主要介紹Javascript中引用參數(shù)的使用方式。 在Javascript中對象(Object)和數(shù)組(Array)屬于引用類型,因此它們作為函數(shù)的參數(shù)傳遞時(shí)都采用的是引用傳遞方式。舉個(gè)例子,在下面的代碼中,定義了一個(gè)全局變量arr,其中包含三個(gè)元素1、2、3。然后在調(diào)用函數(shù)modifyArr(arr)時(shí),將arr作為參數(shù)傳遞進(jìn)去,在函數(shù)內(nèi)部對arr進(jìn)行修改,并且在函數(shù)執(zhí)行完畢之后打印arr的值。
let arr = [1, 2, 3];
function modifyArr(arr) {
arr.push(4);
}
modifyArr(arr);
console.log(arr); // [1, 2, 3, 4]
從結(jié)果可以看出,函數(shù)執(zhí)行完畢之后,原始的arr數(shù)組的值被修改了,這是因?yàn)樵谡{(diào)用函數(shù)時(shí),傳遞的是數(shù)組對象的引用,函數(shù)內(nèi)部對該引用指向的數(shù)組進(jìn)行修改,因此原始的arr數(shù)組的值也會隨之改變。 除了數(shù)組和對象,Javascript中還有一些其他類型,如Boolean、Number和String等,它們都是值類型,因此在函數(shù)內(nèi)部對它們進(jìn)行修改,不會改變原始變量的值,例如:
let num = 1;
function modifyNum(num) {
num++;
}
modifyNum(num);
console.log(num); // 1
在調(diào)用modifyNum函數(shù)時(shí),num變量被傳遞進(jìn)去,但函數(shù)內(nèi)部只是對該變量的副本進(jìn)行了修改,因此原始的num變量的值并未改變。 需要注意的是,在Javascript中,如果在函數(shù)內(nèi)部直接對引用參數(shù)賦值,就會改變該引用所指向的對象,而不是改變原始變量的值。例如:
let obj1 = {name: 'Tom'};
let obj2 = {age: 18};
function modifyObj(obj) {
obj = obj2;
}
modifyObj(obj1);
console.log(obj1); // {name: 'Tom'}
在調(diào)用modifyObj函數(shù)時(shí),將obj1作為參數(shù)傳遞進(jìn)去,并且在函數(shù)內(nèi)部將obj直接賦值為obj2。但是打印obj1的值時(shí),結(jié)果仍然是{name: 'Tom'},這是因?yàn)樵诤瘮?shù)內(nèi)部,對引用參數(shù)賦值只是讓該引用指向了一個(gè)新的對象,而不是改變原始變量所指向的對象。 總結(jié)一下,Javascript中引用參數(shù)的使用需要注意以下幾點(diǎn):引用參數(shù)傳遞的是該變量的引用,對該引用指向的對象進(jìn)行修改會影響原始變量的值;數(shù)組和對象屬于引用類型,傳遞它們作為參數(shù)時(shí)采用的是引用傳遞方式;如果在函數(shù)內(nèi)部直接對引用參數(shù)賦值,就會改變該引用所指向的對象,而不是改變原始變量的值。