Pourquoi ne Underscore.js ont une fonction de délai?
C'est le code source pour Underscore.js' delay
fonction:
_.delay = function (func, wait) {
var args = slice.call(arguments, 2);
return setTimeout(function () { return func.apply(null, args); }, wait);
};
Comment est-ce différent de setTimeout
? Pourquoi ne Underscore.js besoin delay
?
OriginalL'auteur Aadit M Shah | 2013-06-03
Vous devez vous connecter pour publier un commentaire.
C'est un navigateur croix façon d'être en mesure de passer des arguments supplémentaires qui apparaissent comme les arguments à la fonction de rappel, comme
setTimeout()
. Cela ne fonctionne pas dans IE.Il peut rendre votre code plus joli...
...vs...
Je suis d'accord que c'est l'un des moins utile de Souligner les méthodes qui sont décrites dans Naomi répondre.
ne prend pas en charge la transmission d'un littéral de chaîne en tant que premier paramètre, donc pas de que de la croix-navigateur. Peut-être que c'est mentionné dans la documentation...
Eh bien, je ne pense pas que c'est une fonctionnalité que nous voulons garder 🙂
Comment est-il indifférent? Trait de soulignement (entre autres choses) qu'il manque des fonctionnalités qui n'est pas dans tous les navigateurs. Voici un autre exemple qui permet de passer des arguments supplémentaires à transmettre à la fonction de rappel. Qui n'est pas pris en charge dans IE. C'est une des raisons pour lesquelles cette fonction existe.
n'est pas de raison, juste pour le commentaire. 😉 Je risquerais de passer d'une chaîne à setTimeout si c'était quelque chose de banal comme
alert('boo')
. Mais ensuite, je peux aussi nesetTimeout(Function('…'),…)
, de sorte que ce qui est acquis par le fait de ne pas soutenir les chaînes?OriginalL'auteur alex
Parce que muet. Ce particulier underscore.js méthode semble assez stupide.
Contre
Pros
Je voudrais juste apprendre à utiliser de javascript et de faire quelque chose comme
Simple, non? Underscore.js est parfois assez inutile. Honnêtement,
window.setTimeout
est parfaitement utile juste la façon dont il est.Voici un autre exemple pour montrer comment passer d'un argument à la fonction
Si vous ne pouvez pas dépendre
.bind
vous pouvez utiliser une fermeture tropWow, c'était difficile, cependant. Je vais revenir à un trait de soulignement et lodash et jquery. Ce JavaScript genre de choses est difficile !
Tas de noobs toujours vers le bas droit de vote. Amenez-en, des débutants 🙂
Je ne comprends pas tout de la haine. Vous ne méritez pas d'être downvoted.
Je suis en désaccord. Je ne pense pas qu'une lib de l'objectif doit être de remplacer complètement toutes les fonctionnalités en natif d'une langue. Même si il est un utilitaire de la bibliothèque, il faut maintenir une orientation claire sur les choses c'est en fait de l'amélioration. Dans ce cas,
_.delay
n'est pas assez d'une amélioration (ou une amélioration à tous), afin de garantir l'abstraction et de l'API supplémentaire à mémoriser.OriginalL'auteur user633183
aes·thet·ics
L'auteur de cette bibliothèque, qui a choisi de consacrer son temps libre à code source ouvert, parler d'elle, l'utiliser comme un moyen de présenter le javascript et peut-être avoir quelqu'un d'avoir une ampoule moment autour de la fermeture de la portée de la pensée de la bibliothèque de l'attractivité a été renforcée par le fait d'avoir cette.
En faisant valoir la pertinence de cette fonction dans l'isolement, c'est comme en faisant valoir la pertinence d'une peinture ou d'un autre morceau de l'artisanat. Certains aiment, d'autres pas.
Vous êtes libre de l'aimer ou pas. Personnellement, je préfère juste-à-obtenir-pour-le-point libs.
_.delay, _.defer, _.throttle, _.after
ont un flux à mon humble avis qui se lit mieux que fenêtre.Sur le dessus de cela, généralement j'aime aussi l'écriture du nœud côté serveur (nodejs) et ne pas avoir à déplacer/dans/hors de la mode... essayez d'utiliser
window.timeout
dans le nœud et voir ce qui se passe.OriginalL'auteur terrance.a.snyder
Pas beaucoup, bien qu'il s'adapte thématiques avec
defer
,debounce
, et ainsi de suite. Cela signifie que vous pouvez utiliser le caractère de soulignement emballage notation:Aussi, il ne semble pas que cela vous permettra de vous sortir avec un argument de type chaîne, qui ferait appel à eval.
setTimeout
.nécessairement eval, au contraire, il pourrait utiliser la Fonction constructeur. 😉 @Aadit—pas difficile de soutenir également des chaînes de caractères, il suffit de tester le premier argument et si c'est une chaîne, utilisez la Fonction constructeur, puis appel de temporisation.
robg Vous les deux semblent être de l'incompréhension—moi-je suis en se référant à l'avantage de ne pas accepter les arguments de chaîne. Je l'ai vu arriver beaucoup de fois, et même parfois par accident. Vous pouvez trouver de nombreux exemples dans le code ici sur StackOverflow. Programmeur mains sont des choses étranges et parfois, ils ont mis des guillemets autour de choses quand vous n'êtes pas à la recherche.
Je vous comprends. Je comprends aussi que
delay
est plus sûr parce que vous ne pouvez pas passer à un argument de type chaîne. Je pense tout de même que personne dans leur bon esprit passsetTimeout
une chaîne de caractères. Vous faire sonner presque comique en disant, "programmeurs" mains sont des choses étranges et parfois, ils ont mis des guillemets autour de choses quand vous n'êtes pas à la recherche." La prochaine fois que vous voyez le travail de ces mains s'il vous plaît laissez-leur savoir que je pense qu'ils doivent consulter le cerveau avant de jouer à des jeux dangereux. Aussi, vous avez oublié de mettre un signe avant de mentionner @RobG.Merci. Je n'ai pas oublié, mais le système de commentaire m'a informé que je ne peux que mettre une mention, ce qui me semble être une étrange restriction. Comme pour la personne dans leur bon esprit de faire une telle chose, c'est un argument théorique. Je pourrais dire que je suis d'accord avec vous, mais ça ne change pas le fait que les programmeurs sont là chaque jour de le faire, pour quelque raison que ce soit, même les programmeurs qui savent éviter eval sur les données de l'utilisateur, que ce soit en raison d'un manque d'expérience dans le JS de la syntaxe ou de soutenir le code de legs, que ce soit. Pour cette raison, il n'est pas permis de Javascript en mode strict.
OriginalL'auteur Plynx