ユーザークラスの一部であるこのコードがあります。この関数を呼び出すと:
user = new User();
user.regUser("john", "john@doe.com", "john123", function() { });
エラーが発生します
Uncaught TypeError: Object #<Database> has no method 'writeDb'
ユーザークラスの関数:
User.prototype.regUser = function(name, email, password, cb) {
this.db.exec("SELECT * from users WHERE user_email='"+email+"';", function(results) {
var len = results.rows.length;
if (typeof(cb) == 'function') {
if (len < 1) {
this.name = name;
this.email = email;
this.password = password;
this.writeDb();
cb(true); // username doesn't exists
} else {
cb(false); // username already exists
}
}
});
}
問題は、'this'変数が私の関数の入れ子関数で呼び出されることでしょうか?他の関数ではネストされていないときに動作するためです。どうすればこれを修正できますか?
- 少し編集:this.db.writeDb()を作成しました。これはthis.writeDb()である必要がありますが、それでもエラーが発生します。