js中的函式引數傳遞原則

2021-08-02 23:53:55 字數 1034 閱讀 6725

js中函式引數值傳遞和引用傳遞:

一.函式傳遞值型別:

**例項如下:

function addnum(num)

var num=10;

var result=addnum(num);

console.log(num);

console.log(result);

以上**的彈出值分別為:10和20,下面進行一下分析:

宣告變數num並複製為10,這個是num是乙個值型別,當為函式傳遞引數的時候,是將此值複製乙份傳遞給函式,所以在函式執行之後,num本身的值並沒有被改變,函式中被改變的值僅僅是乙個副本而已。

二.函式傳遞引用型別:

function setname(obj)

var web=new object();

web.name="螞蟻部落";

setname(web);

console.log(web.name);

以上**的彈出值是:「青島新銳」,下面進行一下分析:

宣告乙個物件web,它是乙個引用型別,當為函式傳遞引數的時候,是傳遞的web物件的引用,也就是此物件的記憶體位址,所以在函式中修改屬性的物件就是函式外面建立的物件本身。

三.加深理解:

function setname(obj)

var web=new object();

setname(web);

console.log(web.name);

以上**的彈出值是:青島新銳,很多人可能會以為將會彈出「螞蟻部落」,下面進行一下簡單的分析:

在函式外面建立乙個物件,並將物件的引用賦值給變數web,web中儲存的是物件在記憶體中的儲存位址,當為函式傳遞引數時,就是傳遞的在函式外面建立的物件的位址。在函式中,為外面建立的物件建立乙個自定義屬性name並賦值為「青島新銳」,然後又建立乙個新的物件,並將新物件的位址賦值給obj,這個時候obj指向的並不是函式外面建立的物件,所以外面物件name屬性不會被改變。

函式內建立object物件不會改變外面的屬性值 web.name直接讀取函式的屬性

js中函式的引數傳遞方式

js中函式的引數傳遞方式 ecmascript中所有函式的引數都是按值傳遞的。也就是說,把函式外部的值複製給函式內部的引數,就和把值從乙個變數複製到另乙個變數一樣。向引數傳遞基本型別值 傳遞乙個基本型別值時,被傳遞的值會被復給乙個區域性變數 arguments中的乙個元素 function add ...

js函式引數傳遞

js高程3 4.1.3中 ecmascript中所有函式的引數都是按值傳遞的。也就是說,把函式外部的值複製為函式內部的引數,就和把值從乙個變數複製到另乙個變數一樣。正如書中所說,有不少開發人員在這一點上可能感到困惑 很不幸,我就是那一部分人。本文一是看高程整理的筆記,另一方面是自己有很多不理解的地方...

JS中函式引數值傳遞和引用傳遞

也許大家對於函式的引數都不會太在意,簡單來說,把函式外部的值複製給函式內部的引數,就和把值從乙個變數複製到另乙個變數一樣。深入研究,你會發現其實沒那麼簡單,這個傳參是要分倆種情況 其實這是個錯誤的說法,ecmascript中所有函式的引數都是按值傳遞的 高程3 原話,之所以這裡說倆種,是因為結合引用...