Dlaczego funkcja Underscore.js ma funkcję opóźnienia?
Bo głupi. Ta konkretna metoda underscore.js wydaje się dość głupia.
Wady
- dodatkowa funkcja lib oznacza zasadę większy kod
- większy kod podstawowy znaczy dla utrzymywania więcej ewentualnych błędów
- kod, który wykorzystuje funkcję ma teraz zależność tej lib
- Mniejsza poprawa w stosunku do natywnego interfejsu API oznacza niski koszt: współczynnik wzmocnienia
- nowy apis do nauki
Plusy
sekcja ta celowo pozostawiona pusta
Chciałbym po prostu nauczyć się korzystać z javascript i zrobić coś jak
var hello = function() {
console.log("hello");
};
var delay = 1000;
window.setTimeout(hello, delay);
Proste, prawda? Underscore.js jest czasami całkiem bezużyteczny. Szczerze mówiąc, window.setTimeout
jest całkowicie użyteczny, tak jak jest.
Oto kolejny przykład, aby pokazać jak przekazać argumentu do funkcji
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!
Jeśli nie może zależeć od .bind
można wykorzystać zamknięcie zbyt
window.setTimeout(function() {
duchess.meow("please feed me!");
}, 1000);
Wow, to było trudne. Wracam do podkreślenia i odkładania i jquery. Te rzeczy JavaScript są trudne!
Internet Explorer nie obsługuje [argumentów wywołania zwrotnego] (https://developer.mozilla.org/en-US/docs/Web/API/window.setTimeout#Callback_arguments). Co za b ****! –
@ Alex-nie obsługuje przekazywania literału ciągu jako pierwszego parametru, więc nie * to * przeglądarka. Być może jest to wspomniane w dokumentacji ... – RobG
@RobG Cóż, nie sądzę, że jest to funkcja, którą chcemy zachować :) – alex