当前,我必须支持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
才能使其正常工作?