經常看到大家用[].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,元素集合,還可以轉化類數組對象,總之很6.