【js】一些小技巧(1),关于Array.prototype.push,Array.prototype.slice的用法

阅读源码的时候会看到这样操作:

1.Array.prototype.push的介绍

var push = Array.prototype.push;

push.apply(args, arguments);

为什么会用push.apply,而不是直接push呢?

//push.apply

var a = [1,2,3] , b = [4,5,6],push = Array.prototype.push;
push.apply(a,b) ;
console.log(a)  // [1, 2, 3, 4, 5, 6]

//push

var a = [1,2,3] , b = [4,5,6];
a.push(b)
console.log(a)  // [1, 2, 3, Array(3)]

数组的push方法接收一个参数列表返回,它不会自动把数组扩展成参数列表,

使用apply的写法可以将数组型参数扩展成参数列表,这样合并两个数组就可以直接传数组参数。

扫描二维码关注公众号,回复: 8195866 查看本文章

2.Array.prototype.slice的介绍

典型的类数组:arguments ,

function a(a,b){
var args = arguments;
console.log( args.length); // 虽然有length,但是操作数组的方法会报错
console.log( Array.prototype.slice.apply(arguments)) // [1, 2]
}
a(1,2);

Array.prototype.slice.apply() 可以将类数组转换成数组,然后使用数组上内置的方法

猜你喜欢

转载自www.cnblogs.com/zhangqian1/p/12043735.html