Ho una funzione, message
che richiede un parametro per definire il tipo di messaggio e quindi unisce altri argomenti per formare il messaggio, puramente un messaggio.Previa argomento agli argomenti quindi applica
Ecco come si presenta:
function message(type) {
var msg = _.rest(arguments).join(" ");
// Really the type will be used to set the class on a div
// But I'm just using console.log to keep it simple for now.
console.log(type + ": " + msg);
}
voglio fornire funzioni di supporto, error
, warning
, info
, che semplicemente chiamano message
con il tipo giusto. Non sono sicuro del modo migliore per farlo. Non riesco a pensare in due modi, ma non sono sicuro se sto andando su di esso correttamente o che forse sto complicando le cose.
Il primo modo sembra un po 'ridondante, creare un nuovo array contenente il primo arg e gli argomenti quindi appiattirlo.
message.apply(this, _.flatten(["error", arguments]));
Il secondo modo si sente un po '... disordinato?
Array.prototype.unshift.call(arguments, "error");
message.apply(this, arguments);
Anche se dal mio experiement:
(function() {
Array.prototype.unshift.call(arguments, 0);
console,log(arguments);
})(1, 2, 3);
ottengo il seguente output:
[0, 1, 2, 3, undefined, undefined, undefined, ..., undefined]
dovrebbero utilizzare .Call per farlo funzionare ovunque var args = Array.prototype.slice .Call (argomenti); – Dan