由[].slice.call()引起的思考

常常看到你们用[].slice.call()或者Array.prototype.slice.call();  我一直是只知其一;不知其二的,今天算是基本弄清楚了,在此记录一下。数组

可能最多见的是Array.prototype.slice.call(arguments)  就是截取(更重要的是获取,slice是获得子数组)函数的参数,而后让arguments等“伪数组”也能够使用数组的各类方法。函数

 

这种写法看上去非常牛逼,然而,一查才发现,ES6已经优雅的实现,毕竟功能更加的强大:他就是Array.from();spa

let p = document.querySelectorAll('p');prototype

  Array.from(p).forEach(function(i){对象

  alert(i);string

});io

 

 

不仅仅能够转化arguments,元素集合,还能够转化类数组对象,总之很6.function

相关文章
相关标签/搜索