Warum hat Underscore.js eine Verzögerungsfunktion?
Weil dumm. Diese besondere Methode von underscore.js scheint ziemlich dumm zu sein.
Cons
- zusätzliche Funktion in lib bedeutet größere Code-Basis
- größere Codebasis bedeutet mehr zu halten und mögliche Fehler
- Code, der diese Funktion verwendet hat jetzt eine Abhängigkeit von diesem lib
- weniger/keine Verbesserung gegenüber nativer API bedeutet niedrige Kosten: Verstärkungsfaktor
- neue Apis zu lernen
Pros
dieser Abschnitt absichtlich leer gelassen
Ich möchte nur lernen Javascript zu verwenden und so etwas wie
var hello = function() {
console.log("hello");
};
var delay = 1000;
window.setTimeout(hello, delay);
Einfach, oder? Underscore.js ist manchmal ziemlich nutzlos. Ehrlich gesagt, window.setTimeout
ist perfekt genau so, wie es ist.
Hier ist ein weiteres Beispiel dafür, wie eine arg auf die Funktion
var Cat = function(name) {
function meow(message) {
console.log(name, "says meow!", message);
}
this.meow = meow;
};
var duchess = new Cat("Duchess");
window.setTimeout(duchess.meow.bind(duchess, "please feed me!"), 2000);
// 2 seconds later
// => Duchess says meow! please feed me!
Wenn Sie auf .bind
abhängen kann nicht passieren Sie auch einen Verschluss
window.setTimeout(function() {
duchess.meow("please feed me!");
}, 1000);
verwenden können
Wow, das war schwierig. Ich gehe zurück zu unterstreichen und lodash und jquery. Dieses JavaScript-Zeug ist hart!
Internet Explorer unterstützt keine [Rückrufargumente] (https://developer.mozilla.org/en-US/docs/Web/API/window.setTimeout#Callback_arguments). Was für ein b ****! –
@ Alex-es unterstützt nicht die Übergabe eines String-Literals als erster Parameter, also nicht * dass * den Browser überqueren. Vielleicht ist das in der Dokumentation erwähnt ... – RobG
@RobG Nun, ich denke nicht, dass das eine Funktion ist, die wir behalten wollen :) – alex