常常看到你們用[].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