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

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

 

经常看到大家用[].slice.call()或者Array.prototype.slice.call();  我一直是一知半解的,今天算是基本弄清楚了,在此记录一下。

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

 

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

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

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

  alert(i);

});

 

 

不单单可以转化arguments,元素集合,还可以转化类数组对象。

 

https://www.cnblogs.com/simao/p/7716711.html

posted @ 2019-01-10 13:55  李德东  阅读(147)  评论(0编辑  收藏  举报