为什么 javascript 错误:“孩子不是一个函数”

Why javascript error: "Child is not a function"

本文关键字:一个 函数 错误 javascript 孩子 为什么      更新时间:2023-09-26

我不明白为什么我不能在 ChildModel 中实例化 child:"未捕获的类型错误:Child 不是一个函数"

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);

发生这种情况是因为,在调用的闭包中,您return Child();而不是简单地return Child;

通过这样做,您实际上是将内部返回值(即 undefined)分配给"外部"Child,因为它不返回任何内容。