Quando si passa un metodo oggetto come argomento di funzione, devo usare `bind 'per assicurarmi che il contesto (questo) del metodo sia impostato correttamente. Poi ci sono molti legami nel mio codice ... È questo il modo pulito per scrivere il codice JS? Qual è il modello di progettazione consigliato per i metodi di passaggio? Forse dovrei passare l'intero oggetto o ridisegnare il mio oggetto?Come passare i metodi degli oggetti JS?
Grazie.
Per il vostro riferimento, ho incollato il mio codice qui. Questo non è sicuramente un buon codice. Per esempio, probabilmente, potrei voler usare istruzioni multi-sql piuttosto che chiamarle una per una.
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);
});
}
Vuoi condividere il codice corrente in modo che potremmo discutere su come potrebbe essere migliorato al fine di evitare la ripetizione del codice? –
'function (oggetto, metodo, argomenti) {oggetto [metodo] .apply (oggetto, argomenti); } ' – mishik
Forse questo è più adatto per [codereview] (http://codereview.stackexchange.com). –