JavaScript arguments 物件
arguments是一個特殊物件,不用且不能由程式設計師主動建立。
函式被呼叫時,此物件會自動建立,程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(x,y){ for(var index=0;index<arguments.length;index++){ console.log(arguments[index]); } } func(1, 2, 3, 4)
依次列印1,2,3,4四個引數,解析如下:
(1).儲存了實際傳入函式的引數。
(2).與陣列類似,可以使用索引訪問其中引數或者length返回引數數量。
關於形參和實參可以參閱JavaScript函式形參或者實參一章節。
利用arguments物件可以實現一些驗證功能,比如對函式傳入的引數數目限制。
如果傳入的數量與期望數目不同,則報錯。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func() { if( arguments.length == 2 ){ return arguments[0] + arguments[1]; }else{ return '引數數目錯誤'; } } console.log(func(2,4,6));
程式碼執行效果截圖如下:
程式碼分析如下:
(1).函式期望傳入2個引數。
(2).呼叫函式後,arguments物件儲存實際傳入的引數(2,4,6)。
(3).arguments.length屬性獲取實際傳入引數的數量,判斷傳入的數量是否兩個,如果是兩個引數,那將兩個引數相加,並返回它們的和,如果傳入引數的數量不是兩個,則返回"引數數目錯誤"。
(4).引數可以通過與陣列相同的方式訪問,arguments[0]返回從左邊數第一個引數,arguments[1]返回從左邊起第二個引數,以此類推。
是陣列還是物件:
在前面已經介紹,arguments是物件,但非常類似於陣列:
(1).可以使用索引訪問其中儲存的資料。
(2).使用length屬性返回儲存資料的數目。
但它並非是陣列,證明這一點非常簡單,如果是陣列,那麼肯定可以使用陣列物件的方法。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(x,y){ arguments.push(5) } func(1, 2, 3, 4)
上面程式碼報錯,因為arguments物件並不是陣列,所以沒有push方法。
將arguments轉換為陣列:
非常簡單,程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function func(x,y){ let arr=Array.prototype.slice.apply(arguments); arr.push(5); console.log(arr); } func(1, 2, 3, 4)
上面程式碼將arguments物件轉換為陣列,更多內容參閱如下文章:
(1).prototype參閱JavaScript prototype一章節。
(2).apply()參閱JavaScript appy()方法一章節。
(3).slice()參閱JavaScript slice()方法一章節。
相關文章
- JavaScript arguments物件詳解JavaScript物件
- JavaScript 深入之類陣列物件與 argumentsJavaScript陣列物件
- 你知道 JavaScript 中的 Arguments 物件都有哪些用途嗎?JavaScript物件
- JavaScript之argumentsJavaScript
- js函式,arguments物件JS函式物件
- 關於JavaScript中arguments的用法JavaScript
- 證明arguments是個物件不是陣列物件陣列
- js-arguments 函式引數物件詳解JS函式物件
- 深入學習js之——類陣列物件與arguments #11JS陣列物件
- Javascript 物件 – 字串物件JavaScript物件字串
- Function.caller, arguments.caller, arguments.callee, arguments.callee.calllerFunction
- JavaScript 物件JavaScript物件
- JavaScript物件JavaScript物件
- Javascript 物件 – 陣列物件JavaScript物件陣列
- Javascript 物件 – 數學物件JavaScript物件
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- JavaScript Date 物件JavaScript物件
- JavaScript 物件 & 原型JavaScript物件原型
- JavaScript URL 物件JavaScript物件
- JavaScript RegExp物件JavaScript物件
- JavaScript Function物件JavaScriptFunction物件
- JavaScript Symbol物件JavaScriptSymbol物件
- JavaScript Set物件JavaScript物件
- JavaScript window物件JavaScript物件
- JavaScript Promise物件JavaScriptPromise物件
- JavaScript Array物件JavaScript物件
- JavaScript物件5JavaScript物件
- JavaScript Number 物件JavaScript物件
- JavaScript Promise 物件JavaScriptPromise物件
- javaScript之物件JavaScript物件
- JavaScript Array 物件JavaScript物件
- JavaScript物件概述JavaScript物件
- JavaScript Boolean 物件JavaScriptBoolean物件
- JavaScript File 物件JavaScript物件
- JavaScript Blob 物件JavaScript物件
- JavaScript Object 物件JavaScriptObject物件
- JavaScript Global 物件JavaScript物件
- JavaScript document物件JavaScript物件