Array.prototype.push.apply

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

http://blog.csdn.net/maoguiyou/article/details/51433551
时间: 2024-11-04 03:44:14

Array.prototype.push.apply的相关文章

Array.prototype.push.apply(a,b)和Array.prototype.slice.call(arguments)

Array.prototype.push.apply(a,b) 时常看到在操作数组的时候有这样的写法: var a = [1,2,3]; var b = [4,5,6]; a.push.apply(a, b); console.log(a) //[1,2,3,4,5,6] 其实这样的写法等价于: var a = [1,2,3]; var b = [4,5,6]; Array.prototype.push.apply(a, b); console.log(a) //[1,2,3,4,5,6] 这样

Array,prototype.concat.apply与[].conat.apply.

一直都知道JS数组Array内置对象有一个concat方法,但是也没怎么研究过,今天偶然就看了看 concat是连接一个或多个数组 返回的是连接后数组的一个副本 var oldArr=[]; var arr=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]; var newArr=oldArr.conat(arr); console.log(newArr); console.log(oldArr);//[]  没有改变 于是乎 我又想到把数组的每一项都当成数组与oldAr

【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,

JavaScript,通过分析Array.prototype.push重新认识Array

在阅读ECMAScript的文档的时候,有注意到它说,数组的push方法其实不仅限于在数组中使用,专门留作通用方法.难道是说,在一些类数组的地方也可以使用?而哪些是和数组非常相像的呢,大家或许一下子就可以想到就是Object对象.因为Array就是继承自Object的,可以用 [] instanceof Object,会发现返回的是true.当然大家都知道,这也不是什么新鲜事.那我们可以大胆尝试一下,如果我们将数组的push方法应用在对象上,会一个怎么样的表现呢? 我们通过call,将this的

理解 Array.prototype.slice.apply

1. 首先,我们都理解在js中改变this引用有三种方法,call(), apply(), bind(): 2. bind方法是改变函数内this引用,简单不再描述; 3. 至于 call() 和 apply() 两个方法,区别在于,前者是不定长的入参,后者是一个数组:下边重点说apply方法使用; 原理: 我们知道js中存在一种类数组对象,比如 {0:1,length:1}    或者 DOM 对象,或者 arguments 对象: 数组只是一种特殊的对象,数组的特殊性体现在,它的键默认是按次

对数组的操作Array.prototype.sort 方法--alert( [1, 3, 9, 2].sort() )

1.   数组的 sort 方法 远远没有被充分利用,而且可能比开发者们想像的更加强大.很多开发者可能觉得 sort 方法可以用来做这种事情: [1, 3, 9, 2].sort(); // 返回 [1, 2, 3, 9] alert( [1, 3, 9, 2].sort() ) ……这没错,但它还有更强大的用法,比如这样: [ { name: "Robin Van PurseStrings", age: 30 }, { name: "Theo Walcott",

(转)Array.prototype.slice.call自解

很多框架或者库里面都会有这句的使用,最多的还是通过Array.prototype.slice.call(arguments,0)把arguments这个伪数组转换为真正的数组.但为什么可以这么做,却一直是半懂不懂的.昨天晚上看了mootools的源码,google了一下,终于彻底明白了. call方法的作用就不用多说了,Array.prototype.slice.call(arguments,0)就类似于arguments.slice(0),但因为arguments不是真正的Array,所以它没

JS数组追加数组采用push.apply的坑(转)

JS数组追加数组没有现成的函数,这么多年我已经习惯了a.push.apply(a, b);这种自以为很酷的,不需要写for循环的写法,一直也没遇到什么问题,直到今天我要append的b是个很大的数组时才遇到了坑. 1 2 3 a = new Array();     b = new Array(125624);                     a.push.apply(a, b); 以上的代码在mac的chrome下抛出了如下的异常 1 Uncaught RangeError: Maxi

JS数组追加数组採用push.apply的坑

JS数组追加数组没有现成的函数,这么多年我已经习惯了a.push.apply(a, b);这样的自以为非常酷的,不须要写for循环的写法,一直也没遇到什么问题,直到今天我要append的b是个非常大的数组时才遇到了坑. 1 a = new Array();      2 b = new Array(125624);                      3 a.push.apply(a, b); 以上的代码在mac的chrome下抛出了例如以下的异常 1 Uncaught RangeErro