为什么javascript错误:“孩子不是一个功能”

时间:2016-02-23 21:42:53

标签: javascript

我不明白为什么我无法在ChildModel中实例化Child:“Uncaught TypeError:Child is not function”

https://jsfiddle.net/zvabqj0m/

var Child = (function() {
  function Child(data) {
    alert("Child");
  }

  return Child();
})();

var ChildModel = (function() {
  function ChildModel(data) {
    this.data = data;
    this.child = new Child(data);
    alert("ChildModel");
  }

  return ChildModel();
})();

data = "hello";
var childModel = new ChildModel(data);

1 个答案:

答案 0 :(得分:7)

这种情况发生的原因是,在被叫封闭中,您return Child();而不仅仅是return Child;

通过这样做,您实际上正在分配"外部" Child内部值的返回值,即undefined,因为它不返回任何内容。