欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS引用傳遞與值傳遞的區(qū)別與用法分析

 更新時間:2018年06月01日 10:36:37   作者:Mcya  
這篇文章主要介紹了JS引用傳遞與值傳遞的區(qū)別與用法,結(jié)合實例形式較為詳細(xì)的對比分析了javascript引用傳遞與值傳遞的原理、區(qū)別、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下

本文實例講述了JS引用傳遞與值傳遞的區(qū)別與用法。分享給大家供大家參考,具體如下:

這里詳細(xì)解釋JS值傳遞和引用傳遞以及二者的區(qū)別。

我們先來解釋一下這兩個的基本概念吧。

函數(shù)調(diào)用中,傳遞是一個數(shù)值,我們稱為 “值傳遞”。
函數(shù)調(diào)用中,傳遞是對象,一般稱為 “引用傳遞”。

現(xiàn)在這里總體上說明,這二者的本質(zhì)區(qū)別就在于傳遞的數(shù)據(jù)類型不一樣,值傳遞傳遞的是一個值,而引用傳遞傳遞的是一個對象。

看一下代碼以及代碼中的注釋。

一、引入

function func(a)
{
  a++;
}
// 因為函數(shù)都沒有調(diào)用,所以找不到 a
console.log(a);
//結(jié)果明顯是undefined了。
//所以看下面兩個例子。

二、值傳遞

var a = 5;
function func(a)
{
  // 函數(shù)中開辟了一個空間 a == 5
  // a==6
  a++;
}
func(5);
// 結(jié)果,函數(shù)沒有改變到 外部 a 的值,所以,結(jié)果是 5
console.log(a);
// 函數(shù)調(diào)用中,傳遞是一個數(shù)值,我們稱為 “值傳遞”
// 特點: 有多個不同的空間,空間都是在棧中的
//    所以 修改函數(shù)中的空間,對外部空間是沒有影響的

三、引用傳遞

var a = 5;
function func()
{
  // 開辟函數(shù) 的空間
  // 函數(shù)中沒有 a 的空間
  // 所以,系統(tǒng)會自動向外面搜索
  // 這里是對外部的變量進行修改
  a++;
}
func(5);
// 因為函數(shù)中修改了外部的變量 a,所以,值發(fā)生改變了,是 6
console.log(a);
// 函數(shù)調(diào)用中,傳遞是對象,一般稱為 “引用傳遞”
// 特點: 實在存數(shù)據(jù)的空間只有一份

詳細(xì)的說明我都在代碼中注釋說明了,歡迎指點指點指正。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

最新評論