arguments物件,手寫陣列push方法

2021-10-01 19:09:06 字數 679 閱讀 4540

function computed() 

computed(1, 2, 3)

// arguments(3)[1, 2, 3, callee: ƒ, symbol(symbol.iterator): ƒ]

// 0: 1

// 1: 2

// 2: 3

// length: 3

// callee: ƒ computed()

// symbol(symbol.iterator): ƒ values()

// __proto__: object

所以可以以陣列的方式將傳入的引數取出來

function computed() 

computed(1, 2)

如果傳入引數的話,引數和arguments屬於對映關係,乙個改變,另外乙個值也會改變。形引數大於實引數,則arguments為undefined

function computed(a, b)
使用arguments我們可以自己來封裝乙個陣列的push方法,非常簡單。

array.prototype.push = function()

} var a =

a.push(1,2,3)

arguments類陣列物件

ecmascript中的所有引數傳遞的都是值,不可能通過引用傳遞引數。js函式沒有真正意義上的過載。在函式內部有兩個特殊的物件 arguments和this。當函式被呼叫時,傳入的引數將儲存在arguments類陣列物件中,通過arguments可以訪問所有該函式被呼叫時傳遞給它的引數列表。argu...

js 類陣列物件與arguments

類陣列物件是指擁有乙個length屬性和若干屬性的物件。arguments物件就是乙個類陣列物件。另外 常見的類陣列物件還包括 使用document.getelementsbytagname classname 等方法獲得的htmlcollection 使用queryselector獲得的nodel...

(三十六)類陣列物件arguments

在函式呼叫時,我們總能見到arguments這個物件,它具體是用來幹什麼的呢?感覺逼格非常高呢 function a a 1,2,3,4,5 可以看到列印結果位 function add else console.log add 2,3 5 console.log add 1,2,3 傳入引數不合法...