在js中arguments物件的理解

2022-08-23 22:33:15 字數 1914 閱讀 1964

函式的上下文物件this

封裝實參的物件arguments

arguments 物件實際上是所在函式的乙個內建類陣列物件

每個函式都有乙個arguments屬性,表示函式的實參集合,這裡的實參是重點,就是執行函式時實際傳入的引數的集合。arguments不是陣列而是乙個物件,但它和陣列很相似,所以通常稱為類陣列物件,以後看到類陣列其實就表示arguments。arguments物件不能顯式的建立,它只有在函式開始時才可用。

arguments還有屬性callee,length和迭代器symbol。

arguments同樣具有length屬性,arguments.length 為函式實參個數,可以用arguments[length]顯示呼叫引數

arguments物件可以檢測引數個數,模擬函式過載

第一點:arguments物件:可以在函式內訪問所有的引數,實參

例項**:
function f1()

f1(12,23,45); //12 34 45

第二點:在正常的模式下,arguments物件可以在執行的時候進行修改
例項**:
function f2(a,b)

console.log(f2(4,6)); //30

第三點:在嚴格的模式下,arguments物件在執行的時候不可以修改,修改arguments物件不會影響到實際的函式引數
注意:  'use strict' 是開啟嚴格模式

例項**:

function f3(a,b)

console.log(f3(3,6)); //9

第四點:通過arguments物件的length屬性,可以判斷實參的個數
例項**:
function f4()

f4(2,3,4,5); //4

f4(1); //1

f4(); //0

第五點:arguments是乙個物件,不是陣列,轉換為陣列可以採用 slice 和 逐一填入新陣列
例項**:
var arr = array.prototype.slice.call(arguments);

console.log(typeof arr);

var arr2 = ;

for(var i = 0; i第六點:arguments的callee屬性可以返回對應的原函式,達到呼叫自身函式的效果,但是在嚴格模式中是不適用的例項**:

var f5 = function()

var f6;

f5(); //返回原函式,呼叫自身

第一點:arguments.callee為引用函式自身。我們可以借用arguments.length可以來檢視實參和形參的個數是否一致
例項**:
function add(a, b)  else  

}; add(11,22,33,44,66);

第二點:我們可以借用arguments.callee來讓匿名函式實現遞迴
例項**:
var sum = function(n)  else  

} console.log("sum =", sum(5));

第三點:編寫乙個函式求傳入的若干個數字(不能用陣列顯示傳入)的和
例項**:
function add()  

return sum;

}; add(11,22,33,44,66);

關於 js中的arguments 物件

arguments物件包含了函式執行時的所有引數,arguments 0 就是第乙個引數,arguments 1 就是第二個引數,以此類推。這個物件只有在函式體內部,才可以使用。var f function one f 1,2,3 1 2 3 正常模式下,arguments物件可以在執行時修改。va...

JS中的arguments物件解析

在函式體內。識別符號arguments是指向實參物件的引用,實參物件是乙個類陣列物件 arguments 0 arguments.lengtharguments是什麼?答 1 arguments是收到的實參副本 在詞法分析中,首先按形參形成ao的屬性,值為undefined 當實參傳來時,再改動ao...

js物件 JS入門之arguments物件

每天一物件,js天天見,今天我們來看看arguments物件及屬性。arguments物件不能顯式建立,arguments物件只有函式開始時才可用。函式的 arguments 物件並不是乙個陣列,訪問單個引數的方式與訪問陣列元素的方式相同。索引 n 實際上是 arguments 物件的 0 n 屬性...