作用:能够把类数组转化成真正的数组,什么是类数组(有length属性,属性值为数字;其他属性值为数字‘0’,‘1’,等)
原理:看一下slice的源码
- function slice(start, end) {
- var len = ToUint32(this.length), result = [];
- for(var i = start; i < end; i++) {
- result.push(this[i]);
- }
- return result;
- }
slice 并不需要 this 为 array 类型,只需要有 length 属性即可。并且 length 属性可以不为 number 类型,当不能转换为数值时,ToUnit32(this.length) 返回 0.