从函数内的函数创建新的函数对象[JavaScript]

时间:2018-08-01 09:56:29

标签: javascript

当前,我必须支持IE 9,所以我不能使用类和lambda表达式。

我有一个代表我的课的函数,在这个函数中,我还有另一个用于创建新对象的函数。

对于范围,我必须使用this,但问题是,没有

  • new this.Obj()
  • this.Obj()
  • this new Obj()
  • new (this.Obj())

这是我到目前为止尝试过的。我创建了一个小例子

function Store(originDogs) {

  this.Dog = function(name) {
    this.name = name;
  }

  this.originDogs = originDogs;

  this.dogs = this.originDogs.map(function(x) {
    return new this.Dog(x.name);
  });
}

new Store([{
  name: "dog1"
}, {
  name: "dog2"
}, {
  name: "dog3"
}]);

我得到的错误是

  

未捕获的TypeError:this.Dog不是构造函数

如何设置new this.Dog才能使其正常工作?

0 个答案:

没有答案