溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

淺談JavaScript中arguement

發(fā)布時間:2020-07-21 09:52:13 來源:億速云 閱讀:142 作者:小豬 欄目:web開發(fā)

小編這次要給大家分享的是淺談JavaScript中arguement,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

問題

var length = 10;

function fn(){
  alert(this.length);
}
var obj = {
  length: 5,
  method: function(fn) {
   arguments[0]()
  }
}
obj.method(fn);//1

這段代碼中的arguments[0]()是第一個參數(shù)?帶一對小括號是什么意思?

理解

我們可以先從最后調(diào)用obj.method(fn)開始理解。

1.obj是對象,method()是obj的方法,fn是method()的參數(shù),fn是函數(shù)的名,他引用對應(yīng)的函數(shù)。arguments是JavaScript的一個內(nèi)置對象。

An Array-like object corresponding to the arguments passed to a function.
The arguments object is a local variable available within all functions; arguments as a property of Function can no longer be used. Description:You can refer to a function‘s arguments within the function by using the arguments object. This object contains an entry for each argument passed to the function, the first entry's index starting at 0.

2.arguments是用來取得method(fn)的參數(shù)的類數(shù)組,在這里也就是fn,即arguments[0]===fn或arguments.0===fn(0就是arguments的一個屬性)。所以arguments[0]()就等于fn()。

是不是到這里要開始風(fēng)中凌亂了,this.length究竟是指向那個對象呢? 可以這樣理解:

arguments = {
 0: fn, //也就是 functon() {alert(this.length)} 
 1: 第二個參數(shù), //沒有 
 2: 第三個參數(shù), //沒有
 ..., 
 length: 1 //只有一個參數(shù)
}

最后,這個1就是arguments.length,也就是本函數(shù)參數(shù)的個數(shù)。

看完這篇關(guān)于淺談JavaScript中arguement的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI