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); 这一句该怎么理解
1
haozhang 2017-02-16 21:36:12 +08:00 via iPhone 1
等价于 Array.prototype.push ,再去看看 apply 是干什么的就懂了
|
2
lijsh 2017-02-16 21:40:44 +08:00
这段代码的目的是把 SpecialArray 的参数按原样一个个传进 values 数组,查查 apply 的具体用法吧。
|
3
chairuosen 2017-02-16 22:41:57 +08:00
为了把未知个数的参数透传给 push
|
4
learnshare 2017-02-17 00:20:24 +08:00 via Android
主要研究一下 apply 的用法吧
|
5
bombless 2017-02-17 01:28:57 +08:00 via Android 2
就是把调用参数一个个 push 进去 values 呗。这种用法习惯了就好
其实这也算是一个常见技巧,因为 arguments 不是一个 array 有点像 array ,这里就构造出一个 array 内容都是 arguments 那些内容,顺手还把产出的这个对象加了个方法 |