簡(jiǎn)單了解JavaScript arguement原理及作用
問題
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ù)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Nuxt.js之自動(dòng)路由原理的實(shí)現(xiàn)方法
- JavaScript插入排序算法原理與實(shí)現(xiàn)方法示例
- JavaScript設(shè)計(jì)模式之觀察者模式(發(fā)布訂閱模式)原理與實(shí)現(xiàn)方法示例
- JS實(shí)現(xiàn)監(jiān)控微信小程序的原理
- JavaScript中使用import 和require打包后實(shí)現(xiàn)原理分析
- Nodejs模塊載入運(yùn)行原理
- 高性能的javascript之加載順序與執(zhí)行原理篇
- 淺談AngularJs 雙向綁定原理(數(shù)據(jù)綁定機(jī)制)
相關(guān)文章
js實(shí)現(xiàn)選項(xiàng)卡內(nèi)容切換以及折疊和展開效果【推薦】
本文主要介紹了js實(shí)現(xiàn)選項(xiàng)卡內(nèi)容切換以及文字折疊和展開效果的示例代碼。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01javascript遍歷json對(duì)象的key和任意js對(duì)象屬性實(shí)例
下面小編就為大家?guī)硪黄猨avascript遍歷json對(duì)象的key和任意js對(duì)象屬性實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03JS 實(shí)現(xiàn)可停頓的垂直滾動(dòng)實(shí)例代碼
下面小編就為大家?guī)硪黄狫S 實(shí)現(xiàn)可停頓的垂直滾動(dòng)實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11JavaScript設(shè)計(jì)模式之命令模式實(shí)例分析
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之命令模式,結(jié)合實(shí)例形式分析了javascript命令模式的概念、原理、用法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-01-01tsc性能優(yōu)化Project References使用詳解
這篇文章主要為大家介紹了tsc性能優(yōu)化Project References使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11JavaScript求解最長(zhǎng)回文子串的方法分享
這篇文章主要為大家介紹了JavaScript求解最長(zhǎng)回文子串的幾種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-08-08