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
屬性,可以判斷函式呼叫時到底帶幾個引數。
functionf()
f(1, 2, 3) //
3f(1) //
1f() //
0
(2)與陣列的關係
需要注意的是,雖然arguments
很像陣列,但它是乙個物件。陣列專有的方法(比如slice
和foreach
),不能在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不是陣列而是乙個物件,但它和陣列很相似,所以通...