当将对象方法作为函数参数传递时,我必须使用`bind' 来确保方法的上下文(this)设置正确。然后我的代码中有很多绑定......这是编写JS代码的干净方式吗?传递方法的推荐设计模式是什么?也许我应该传递整个对象,或者重新设计我的对象?
谢谢你。
供您参考,我在这里粘贴了我的代码。这绝对不是一个好的代码。例如,我可能想使用多 sql 语句而不是一一调用它们。
function insertDB(response, postData) {
var mysql = require('mysql');
var async = require('async');
var connection = mysql.createConnection({
host : 'localhost',
user : 'user',
password : 'pswd',
database : 'mydb',
});
async.series([
connection.connect.bind(connection),
async.apply(connection.query.bind(connection),
"CREATE TABLE IF NOT EXISTS concepts ("+
"name VARCHAR(64) NOT NULL,"+
"priority INT NOT NULL DEFAULT 0,"+
"date DATE NOT NULL,"+
"notes VARCHAR(256),"+
"PRIMARY KEY (name))"),
async.apply(connection.query.bind(connection),
"INSERT INTO concepts VALUES('" +
postData["word"] + "',0,CURDATE(),'')"),
connection.end.bind(connection)
],
function(err, result) {
if (err) console.error(err);
});
}