在 an answer ,@Tushar 建议了与以下内容相对应的语法。
Array.apply(null, Array(3).fill(10))
.map(function (item, index) {
return item + index;
});
我确实理解这里发生的事情并且我很满意。然而,让我有点烦恼的是,这个 null 值的参数似乎什么也没做。所以我开始研究。据智慧on the web ,它是对this的引用。现在,这让我不太清楚,尽管在其中放入了 cucumber 、数组和对象,但据我所知,它并没有影响 jack 。事实上,我很好奇为什么以下内容不等效,更不用说足够了。
Array(3).fill(10)
.map(function (item, index) {
return item + index;
});
此外,我读到了一些关于 Cr an IE 不接受类数组对象的内容,这告诉我的更少。此外,验证该文章的年代有点困难,因此很难评估其主张的有效性。我谈到原型(prototype)构造函数就放弃了,不确定自己是否走在正确的道路上。
最佳答案
仅当您使用的函数使用 this
时,apply
的第一个参数才重要。
运行以下代码片段应该会更清晰一些:
var o = {value: 1};
var fn = function(a) {
console.log(a + this.value);
}
value = "something else";
fn("an argument ");
fn.apply(o, [20]);
// the above prints:
// an argument something else
// 21
关于javascript - JavaScript 中 Array.apply 的第一个参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34976609/