js 里面 push.apply 小问题

2017-02-16 21:26:34 +08:00
 yantianqi

function SpecialArray() {
  var values = new Array();

  values.push.apply(values, arguments);//这句怎么理解
  console.log(this)

  values.toPipedString = function() {
    return this.join("|");
  };
  return values;
}

我想问一下其中 values.push.apply(values, arguments); 这一句该怎么理解

1857 次点击
所在节点    程序员
5 条回复
haozhang
2017-02-16 21:36:12 +08:00
等价于 Array.prototype.push ,再去看看 apply 是干什么的就懂了
lijsh
2017-02-16 21:40:44 +08:00
这段代码的目的是把 SpecialArray 的参数按原样一个个传进 values 数组,查查 apply 的具体用法吧。
chairuosen
2017-02-16 22:41:57 +08:00
为了把未知个数的参数透传给 push
learnshare
2017-02-17 00:20:24 +08:00
主要研究一下 apply 的用法吧
bombless
2017-02-17 01:28:57 +08:00
就是把调用参数一个个 push 进去 values 呗。这种用法习惯了就好
其实这也算是一个常见技巧,因为 arguments 不是一个 array 有点像 array ,这里就构造出一个 array 内容都是 arguments 那些内容,顺手还把产出的这个对象加了个方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341009

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX