小编Yap*_*ase的帖子

很难理解javascript示例

我目前正在关注javascript课程,并且在其中一个示例中遇到了解javascript中幕后发生的事情的问题(请参阅下面的代码).

我理解大部分代码并理解输出记录的原因是 - > [false,true,true].然而,有一部分让我疯了(我在底部的代码中指出了一个箭头):

我的困惑围绕参数1:

什么旅途不参数1需要从中获取与传递的时刻checkPastLimitSimplified(1)var arr5 = mapForEach(arr1, checkPastLimitSimplified(1));.

我知道在checkPastLimitSimplified(1)调用时会为此函数创建一个执行上下文,其中参数1在变量环境中.

但现在发生了什么? 函数内部的checkPastLimitSimplified函数尚未执行,只是返回.返回后会是什么样子?limiter变量在什么时候接收参数1

据我所知,.bind(this, limiter);创建了该函数的副本.它的limiter变量在返回之前是否已经为1?

function mapForEach(arr, fn) {

  var newArr = [];
  for (var i = 0; i < arr.length; i++) {
    newArr.push(
      fn(arr[i])
    )
  };

  return newArr;
}

var arr1 = [1, 2, 3];

var checkPastLimitSimplified = function(limiter) { // < ----CONFUSED
  return function(limiter, item) {
    return …
Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
1
解决办法
180
查看次数

标签 统计

javascript ×1