將js中類數組轉換為真正的數組

使用Array.prototype.slice.call(arguments);

提到這個,就不得不說一下call()和apply()這兩個方法

call:B.call(A, arguments) ? A,B為兩個對象,arguments為參數,可以傳入多個,此方法可以使得A對象去調用B對象的方法

apply:B.apply(A, arguments) ?A,B為兩個對象,arguments為參數,只能以數組的形式傳入參數,此方法可以使得A對象去調用B對象的方法

我們來看一個例子:

```

function add(a,b)

{?

? ? alert(a+b);?

}?

functionsub(a,b)

{?

? ? alert(a-b);?

}?

add.call(sub,1,1);//? 結果是?? ‘2’? 還是? ‘0’? 呢

```

call 就是中間牽線的,sub說 我需要 add 你的方法 和技能,

比如:add會飛天 ,但sub 不會飛,現在sub想飛,但add不讓它飛,所以sub就叫來了 call 這個東西, call直接把add爆菊

加上一個 點 然后把sub抱到括號里,然后 sub 就直接把add 的“飛天”技能學會了,回到函數

function add(a,b)

{?

? ? alert(a+b);?

}?

functionsub(a,b)

{?

? ? alert(a-b);?

}?

add.call(sub,1,1);

//? 結果是sub直接集成了add的“飛天”技能subalert里面 直接變成了 “a+b”!主角還是sub,并不是add

例子部分轉自https://blog.csdn.net/xllily_11/article/details/51480723

接下來回到我們的問題,我們使用Array.prototype.slice.call(arguments)將函數中的類數組轉換成的真正的數組,

我們使得arguments調用了Array對象中的slice方法,這里要注意slice,首先,slice有兩個用法,一個是String.slice,

一個是Array.slice,第一個返回的是字符串,第二個返回的是數組

這里我們的slice方法沒有寫參數,默認從’0‘”開始切割至末尾,我們主要是利用Array.slice方法返回數組把其轉換成真正的數組。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Javascript有很多數組的方法,有的人有W3C的API,還可以去MDN上去找,但是我覺得API上說的不全,M...
    頑皮的雪狐七七閱讀 4,500評論 0 6
  • 概要 64學時 3.5學分 章節(jié)安排 電子商務網站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,876評論 0 3
  • 第一章1,什么叫程序:程序就是計算機按照人類完成事物的步驟和邏輯,通過計算機命令來逐步執(zhí)行最終實現目標的一種機器語...
    悟名先生閱讀 1,076評論 0 4
  • 昨天被后來的我們刷屏,晚上我也去看了夜場,最早知道這部電影是來自于微博的推送,看了預告覺得不錯,那個時候就...
    秦雨希閱讀 400評論 0 4
  • 熱愛寫作的小伙伴們,是否曾經有過這樣的寫作經歷: 你的腦海里有個非常好的想法,努力寫出來以后,發(fā)現似乎并不是你當初...
    余老詩寫作課閱讀 1,723評論 6 26

友情鏈接更多精彩內容