为什么会出现类型错误?

时间:2016-01-16 20:24:29

标签: javascript function

我正在学习JavaScript,并且在运行此代码时遇到错误时正在使用函数:

var arrayOfObjects = [{
  prop1: "a",
  prop2: "b"
}, {
  prop1: "c",
  prop2: "d"
}];

function testFunc(arrayOfObjects) {
  for (var i = 0; i < arrayOfObjects.length; i++) {
    arrayOfObjects[i].newFunctionProp = function() {
      console.log("Hello!");
    };
  }
}

arrayOfObjects[0].newFunctionProp();

错误是:

TypeError: arrayOfObjects[0].newFunctionProp is not a function

当我在for循环中为该属性分配函数表达式时,有人可以解释为什么这个属性不是函数吗?

1 个答案:

答案 0 :(得分:1)

提到Denys Séguret时,需要运行testFunc testFunc(arrayOfObjects);,以便创建所需的属性。