TypeError:this.model不是函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError:this.model不是函数相关的知识,希望对你有一定的参考价值。
这是我的代码
var animalSchema = new Schema({ name: String, type: String });
animalSchema.methods.findSimilarTypes = (cb) => {
console.log(this)
return this.model("Animal").find({ type: this.type }, cb);
};
var Animal = model("Animal", animalSchema);
var dog = new Animal({ type: "dog" });
dog.findSimilarTypes((err, dogs) =>{
console.log(dogs);
});
当我这样写时function(cb) {
return this.model('Animal').find({ type: this.type }, cb);
};
一切正常。但是当我使用箭头功能时,出现错误。
TypeError:this.model不是函数
可以解决吗?
答案
这是因为箭头功能没有自己的this。它在词汇上绑定了他们的上下文。
由于您在箭头函数中使用了this.model,并且它不是该文件/控制器的实例,所以this将指向窗口对象。这将导致您的this.model不是函数的错误。
我希望它消除了您的疑问。
以上是关于TypeError:this.model不是函数的主要内容,如果未能解决你的问题,请参考以下文章