Array.apply(arr,arguments) 的理解

0人阅读 评论(0) 收藏 举报
分类:
var iAmArray = function(){
    return arguments;
};

这里不用管this,下面是正常调用它的三种方式:

//方便你复制到 Console 中测试,在此再写一遍
var iAmArray = function(){
    return arguments;
};

//普通写法
iAmArray(1,2,3);
/*
    [1, 2, 3]
*/

//call写法
iAmArray.call(null,1,2,3);
/*
    [1, 2, 3]
*/

//apply写法
iAmArray.apply(null,[1,2,3]);
/*
    [1, 2, 3]
*/

apply方式调用时,估计是一个小bug,只要是 Object,还有length,它就当作数组处理了,实际和 Array 没有任何关系,任何函数都会这样。

//方便你复制到 Console 中测试,在此再写一遍
var iAmArray = function(){
    return arguments;
};

var iHaveLength = function(length){
    this.length = length || 5;
    this[2] = "第三个元素";
};

/*
   只要是 Object,还有length,他就当作数组处理了。
*/
iAmArray.apply(null, new iHaveLength());
/*
    [undefined, undefined, "第三个元素", undefined, undefined]
*/
iAmArray.apply(null, new iHaveLength(3));
/*
    [undefined, undefined, "第三个元素"]
*/
查看评论

深入理解远程调用之Hessian

-
  • 1970年01月01日 08:00

js call和apply的区别

apply()与call()的区别   一直都没太明白apply()与call()的具体使用原理,今日闲来无事,决定好好研究一番。   JavaScript中的每一个Function对象都...
  • qq_26422747
  • qq_26422747
  • 2017-03-29 15:05:41
  • 127

javascript 将arguments 转化为array [].slice.apply(arguments)

arguments    不是一个标准的数组 ,无法使用数组的一些方法,需要通过   [].slice.apply(arguments)   转化维数组...
  • ISaiSai
  • ISaiSai
  • 2015-08-07 13:53:55
  • 1149

javascript中Array.apply方法的一个陷阱

今天发现了一个坑,写出来给大家做个教训。 我想把一个Uint8Array类型的数组转换为普通数组,运用了Array.apply方法,产生了一些问题。 var a = new Uint8Array(...
  • jjj4856951
  • jjj4856951
  • 2016-04-18 17:40:40
  • 1669

inputparms.java源程序

  • 2012年10月24日 11:54
  • 333B
  • 下载

Python Numpy Tutorial: 二分归并排序

# -*- coding: utf-8 -*- """ Created on Sat May 6 11:32:07 2017 E-mail: Eric2014_Lv@sjtu.edu.cn @au...
  • Eric2016_Lv
  • Eric2016_Lv
  • 2017-05-06 11:47:33
  • 350

js中arguments理解

arguments
  • qq_27945683
  • qq_27945683
  • 2017-04-16 11:23:31
  • 1566

JavaScript中如何理解如何理解Array.apply(null, {length:5})

先来看一个问题:如何理解Array.apply(null, {length:5})的{length:5}?我测试过Array.apply(null, {length:5}) //返回[undefine...
  • qq_41675686
  • qq_41675686
  • 2018-02-28 15:00:59
  • 18

简析arguments与arguments转化成数组的方法

arguments是什么?arguments 就是函数内一个內建对象,它包含函数接收到的所有变量。...
  • Milk_Brother
  • Milk_Brother
  • 2017-04-04 13:52:51
  • 891

理解Javascript函数形式参数与arguments

  • 2012年10月03日 23:11
  • 43KB
  • 下载
    个人资料
    等级:
    访问量: 1万+
    积分: 292
    排名: 26万+