javascript - JavaScript 中 Array.apply 的第一个参数是什么?

标签 javascript arrays prototype

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

https://jsfiddle.net/f2zw8edd/

关于javascript - JavaScript 中 Array.apply 的第一个参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34976609/

相关文章:

javascript - 从 AngularJS 中的 location.search 中删除项目

javascript - 通过 HTML 打开的 PDF 文件的大小

python - 如何在Python中引用列表中的字符串

php - 如何使用 CMS 中动态输入的数据在 Highcharts 中构建柱形图

JavaScript:.extend 和 .prototype 有什么用?

javascript - 如何在 Javascript 中使用面向方面编程 "catch"关注?

javascript - 在客户端缓存大量的 json 结果

javascript - 为什么 stringify() 只返回对象数组的第一级

javascript - 为什么这个 Object.create() 原型(prototype)对象不访问 Constructor 对象的属性?

javascript - Bootstrap 网格 : Is this correct to replace col-xs-6 + col-xs-6 with col-xs-12+ (col-xs-6 & display:none)?