Array.prototype.slice.call 的作用
slice
slice() 是数组的方法可从已有的数组中返回选定的元素;
1 | arr.slice(start,end) |
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素
1 | var arr = [1,2,3,4,5,6]; |
call
call() 方法是预定义的 JavaScript 方法;
通过 call(),能够使用属于另一个对象的方法,常用于对象、类式等继承;
1 | function Animal(){ |
Array.prototype.slice.call
Array.prototype.slice.call()能将有length属性的类似数组的对象转换为数组;
前提是这个对象的key必须是 0 1 2 … 这样的数字,并且一定要有length属性;
例1:定义一个类数组对象,通过此方法转换成数组
1 | var obj = { 0: 'one', 1: 'two', length: 2 } // 定义一个对象 |
例2:像通过document.getElementsByTagName这种获取页面中所有div标签的方法返回的也是类数组对象
1 | var divList = document.getElementsByTagName('div') |
但有一个例外,IE下的节点集合它不能转换(因为IE下的dom对象是以com对象的形式实现,js对象和com对象不能进行转换;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Monzeye的博客!
评论