码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2019-12-15 14:41:48      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:操作   扩展   一个   function   个数   使用数组   写法   cti   参数   

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

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的写法可以将数组型参数扩展成参数列表,这样合并两个数组就可以直接传数组参数。

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() 可以将类数组转换成数组,然后使用数组上内置的方法

 

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

标签:操作   扩展   一个   function   个数   使用数组   写法   cti   参数   

原文地址:https://www.cnblogs.com/zhangqian1/p/12043735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!