js 函數中形參與實參的關系


函數中形參與實參的關系

對於形參和實參的定義,在 權威指南中有着明確的定義。但是,我們更在意的是它們之間的關系,到底形參會不會影響到實參?

形參到底會不會影響到實參?

對於這個問題的答案,請先看以下兩個例子:

//例子一
function add(x){
    x+=1;
};

var a = 1;
add(a);

console.log(a); //1 看來不會影響到實參

//例子二
function Push(arr){
arr.push(1);
}

var b = [];
Push(b);
console.log(b); //[1] 額。。。好像會影響到實參

看完上面的例子,多多少少會有一些疑惑,到底它們之間是什么關系?
筆者認為,形參和實參是存在一種引用關系的,就好比變量中的引用關系。我們都知道,變量中的引用關系跟它們的值有關。當值為原始類型時(string,number,boolean等等),var a=b是各自引用不同的內存地址的,修改不會影響到彼此;當值是對象,數組等非原始類型時,它們引用的是同一個內存地址,修改則會相互影響。所以上面例子中,當實參是數組時,由於它們共用同一內存地址,所以修改會影響彼此,這個在平時要多加注意!

筆者水平有限,上面僅是個人意見想法,如果有誤,請指出。 😊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM