匿名函数只在循环中调用一次吗?

时间:2015-07-07 15:30:23

标签: javascript

这里你可以看到循环内部有一个匿名函数,它只在结束时执行一次。如果我使用函数声明它会调用3次(这是数组的长度)。

  function celebrityIDCreator(theCelebrities) {
      var i;
      var uniqueID = 100;
      for (i = 0; i < theCelebrities.length; i++) {
          console.log(i) //which return 1,2,3
          theCelebrities[i]["id"] = function () {
              console.log(i) //which returns 3
              return uniqueID + i;
          }
      }
      return theCelebrities;
  }

  var actionCelebs = [{
      name: "Stallone",
      id: 0
  }, {
      name: "Cruise",
      id: 0
  }, {
      name: "Willis",
      id: 0
  }];

  var createIdForActionCelebs = celebrityIDCreator(actionCelebs);
  var stalloneID = createIdForActionCelebs [0];
  console.log(stalloneID.id()); // 103

0 个答案:

没有答案