鍍金池/ 問答/HTML/ 關于JS的slice方法和call方法

關于JS的slice方法和call方法

通過document.getElementsByTagName選擇的dom 節(jié)點是一種類似array的array。它不能應用Array下的push,pop等方法。我們可以通過:var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));這樣domNodes就可以應用Array下的所有方法了。

Array.prototype.slice.call(document.getElementsByTagName("*"));這句代碼不是很明白,slice()方法不是取數(shù)組的元素?

回答
編輯回答
寫榮

slice如果不傳入?yún)?shù)會返回一個淺拷貝數(shù)組副本。
call的作用是用document.getElementsByTagName("*")作為slice方法中的this調(diào)用一次slice方法;從而把dom列表轉(zhuǎn)換成真正的Array

2017年3月3日 13:41
編輯回答
空痕

這里就是把.getElementsByTagName()返回的類數(shù)組轉(zhuǎn)化成數(shù)組 用slice()方法不傳參數(shù)則索引從0開始即整個類數(shù)組都轉(zhuǎn)化成了數(shù)組

2017年9月27日 09:50