關於 js中的arguments 物件

2022-05-27 21:00:16 字數 1137 閱讀 1841

arguments物件包含了函式執行時的所有引數,arguments[0]就是第乙個引數,arguments[1]就是第二個引數,以此類推。這個物件只有在函式體內部,才可以使用。

var f = function

(one)

f(1, 2, 3)//1

//2//3

正常模式下,arguments物件可以在執行時修改。

var f = function

(a, b)

f(1, 1) //

5

嚴格模式下,arguments物件是乙個唯讀物件,修改它是無效的,但不會報錯。

var f = function

(a, b)

f(1, 1) //

2

上面**中,函式體內是嚴格模式,這時修改arguments物件就是無效的。

通過arguments物件的length屬性,可以判斷函式呼叫時到底帶幾個引數。

function

f()

f(1, 2, 3) //

3f(1) //

1f() //

0

(2)與陣列的關係

需要注意的是,雖然arguments很像陣列,但它是乙個物件。陣列專有的方法(比如sliceforeach),不能在arguments物件上直接使用。

如果要讓arguments物件使用陣列方法,真正的解決方法是將arguments轉為真正的陣列。下面是兩種常用的轉換方法:slice方法和逐一填入新陣列。

var args =array.prototype.slice.call(arguments);

//或者

var args =;

for (var i = 0; i < arguments.length; i++)

js中的arguments的解析

在js中經常會用用到arguments這個物件,而這個屬性是代表著函式f a,b,c,中被傳入的實參。arguments實際上是乙個類陣列的物件,arguments具有length的屬性和類陣列的特性。1 arguments是收到的實參副本,在詞法分析中,首先按形參形成ao的屬性,值為undefin...

JS中的arguments物件解析

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

在js中arguments物件的理解

函式的上下文物件this 封裝實參的物件arguments arguments 物件實際上是所在函式的乙個內建類陣列物件 每個函式都有乙個arguments屬性,表示函式的實參集合,這裡的實參是重點,就是執行函式時實際傳入的引數的集合。arguments不是陣列而是乙個物件,但它和陣列很相似,所以通...