Mongoose传递类函数
Mongoose passing class functions
当我将函数传递给mongoose时,它似乎不再引用this
。有更好的方法吗?由于长度原因,所有功能都被简化了。我无法编辑函数getUsernameForId
以获取其他参数。
我有课:
var class = new function() {
this.func1 = function(data) {
return data + "test";
}
this.func2 = function(data) {
var next = function(username) {
return this.func1(username); // THIS THROWS undefined is not a function
}
mongoose.getUsernameForId(1, func3);
}
}
猫鼬是另一类:
var getUsernameForId = function(id, callback) {
user_model.findOne({"id": id}, function(err, user) {
if(err) {
throw err;
}
callback(user.username);
});
}
如何解决undefined is not a function error
。我不想重复代码,因为func1实际上相当长。
从您的代码中还不清楚next
是如何使用的,但如果您需要用正确的this
调用它,您可以尝试使用Function.prototype.bind
方法:
this.func2 = function(data) {
var next = function(username) {
return this.func1(username);
}.bind(this);
mongoose.getUsernameForId(1, func3);
}
我假设您简化了帖子的代码,next
在现实中做了更多的事情。但如果它确实只是返回this.func1
的结果,那么您可以缩短它:
var next = this.func1.bind(this);
相关文章:
- Mongoose传递类函数
- .hasClass 在 onclick 函数中不起作用,但删除和添加类函数可以
- 在NodeJS中使用类函数作为事件侦听器
- 如何在类函数中发送ajax请求
- 调用子类函数时调用的超类函数
- 以单个类函数而不是整个类组为目标
- 从类函数中删除类变量
- 如何从类函数内部访问对象属性
- JavaScript:对类/函数和对象使用相同的名称
- 单击JavaScript添加和删除类函数
- 访问类函数
- 在forEach中调用类函数:Javascript如何处理“this”关键字
- 动态调用类函数
- 如何从闭包调用javascript类函数
- 从Javascript中的类中调用类函数,Jquery
- 无法在 JS 中获取继承的类函数
- 类函数调用
- 获取自身内的类函数名称
- 将类函数作为参数传递给另一个类,以用作 JavaScript 中的回调
- Angular 2 不能调用类函数