僞數組
僞數組的本質是個對象,它擁有數組三要素:元素、下標、長度,但不能調用數組api
一個僞數組的範例:
//僞數組
var nameArr = {
0:'lin',
1:'wang',
2:'Steven',
3:'taku',
length:4
};
console.log(nameArr.length);//4
console.log(nameArr[2]);//Steven
僞數組轉數組
//僞數組轉數組-1
var newArr = [];
newArr.push.apply(newArr,nameArr);
console.log(newArr);//["lin", "wang", "Steven", "taku"]
//僞數組轉數組-2
var newArr = [];
newArr = newArr.concat.apply(newArr,nameArr);
console.log(newArr);//["lin", "wang", "Steven", "taku"]
//僞數組轉數組-3
var newArr = Array.prototype.slice.call(nameArr,0);
console.log(newArr);//["lin", "wang", "Steven", "taku"]
apply上下文方法,第一個參數指定this指向,第二個參數指定參數。通過apply方法將僞數組每一個元素作爲實參
方法三調用了數組原型的slice方法,選取call()得到的數組參數
修改this指向的方法:apply(),call(),bind()
apply() | 函數名.apply(this修改後的指向,僞數組或數組) |
call() | 函數名.call(this修改後的指向,一個或多個的參數) |
bind() | 函數名.bind(this修改後的指向,一個或多個的參數) |