類數(shù)組對(duì)象,意思就是說:表面上看起來是數(shù)組,但內(nèi)在卻不是數(shù)組。在Javascript語言中蕉汪,我們會(huì)碰到許多這樣的類數(shù)組對(duì)象。其中最典型的便是function中的arguments逞怨。
function add(a, b) {
var args = arguments;
console.log(args); // => [3, 4]
console.log(Object.prototype.toString.call(args)); // => [object Arguments]
console.log(args.length); // => 2
console.log(args.slice); // => undefined
return a + b;
}
add(3, 4);
我們發(fā)現(xiàn)者疤,當(dāng)我們?nèi)ゴ蛴rguments的類型時(shí),瀏覽器輸出了[object Arguments]
叠赦,并且在arguments對(duì)象中驹马,slice方法都沒有,這說明argument對(duì)象確實(shí)不是數(shù)組除秀,而是一個(gè)類數(shù)組對(duì)象糯累。為了享受數(shù)組的那些便捷方法,所以我們需要將類數(shù)組對(duì)象轉(zhuǎn)換成真正的數(shù)組對(duì)象册踩。
通常來說泳姐,只要[].slice.call就能轉(zhuǎn)換了。
function toArray(arrayLike) {
return [].slice.call(arrayLike);
}