Function.call.call(Number, undefined, index) 谁帮忙翻译下,不是很懂

2017-09-29 15:09:26 +08:00
 YidaZh

看到生成 0 …(N-1)数列的一种写法

Array.apply(null, {length: N}).map(Function.call, Number);

map的过程中, 怎么就变成Number(index)了呢?

2026 次点击
所在节点    JavaScript
4 条回复
mosliu
2017-09-29 15:54:11 +08:00
改一下,看看能不能明白吧:、

Array.apply(null, {length: 3}).map(Function.call, (index,obj)=>{return index});
Maic
2017-09-29 19:00:08 +08:00
这样写是为了秀么,好贱啊…… new Array(3).fill(‘ sb ’).map((v,i)=>i)不行么,或者直接 Object.keys(new Array(3))
Maic
2017-09-29 19:01:48 +08:00
Array.apply 就是 newArray 的另一种写法,后面的 function call 就是 map 的回调函数而已
MinonHeart
2017-09-29 19:08:14 +08:00
Array.apply(null, {length: 3}).map(Function.call.bind(Number));

var callBindNumber = Function.call.bind(Number);
callBindNumber(value, index, array); 相当于调用 Number.call(value, index, array);
因为 call 已经 bind 了 Number,第一参数无效,就变成 Number(index, array),Number 忽然第二参数就是 Number(index)

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

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

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

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

© 2021 V2EX