十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
小編這次要給大家分享的是淺談JavaScript中arguement,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計(jì)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了天水免費(fèi)建站歡迎大家使用!
問題
var length = 10;
function fn(){
alert(this.length);
}
var obj = {
length: 5,
method: function(fn) {
arguments[0]()
}
}
obj.method(fn);//1這段代碼中的arguments[0]()是第一個(gè)參數(shù)?帶一對(duì)小括號(hào)是什么意思?
理解
我們可以先從最后調(diào)用obj.method(fn)開始理解。
1.obj是對(duì)象,method()是obj的方法,fn是method()的參數(shù),fn是函數(shù)的名,他引用對(duì)應(yīng)的函數(shù)。arguments是JavaScript的一個(gè)內(nèi)置對(duì)象。
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的一個(gè)屬性)。所以arguments[0]()就等于fn()。
是不是到這里要開始風(fēng)中凌亂了,this.length究竟是指向那個(gè)對(duì)象呢? 可以這樣理解:
arguments = {
0: fn, //也就是 functon() {alert(this.length)}
1: 第二個(gè)參數(shù), //沒有
2: 第三個(gè)參數(shù), //沒有
...,
length: 1 //只有一個(gè)參數(shù)
}最后,這個(gè)1就是arguments.length,也就是本函數(shù)參數(shù)的個(gè)數(shù)。
看完這篇關(guān)于淺談JavaScript中arguement的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。