由[].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

原文地址:https://www.cnblogs.com/lidedong/p/10249588.html