Monades en JavaScript

Je veux donc comprendre les cas pratiques où les monades en JavaScript sont utiles.

j'ai lu un tas d'articles sur les monades en JavaScript et je comprends que jQuery est un exemple de son utilisation. Mais en dehors du schéma de" chaînage", quels autres problèmes peuvent être résolus efficacement à l'aide de monades à l'avant? génie?

Réf:

http://importantshock.wordpress.com/2009/01/18/jquery-is-a-monad/

http://igstan.ro/posts/2011-05-02-understanding-monads-with-javascript.html

18
demandé sur Rajat 2012-08-08 22:43:21

4 réponses

Eh bien je pense que le premier article est grand et assez détaillé. Il décrit beaucoup de problèmes résolus par JQuery et sa nature monade.

  1. JQuery enveloppe les éléments DOM et donne une interface plus riche. Les problèmes résolus sont nombreux: des événements plus riches ("mouseenter","mouseleave","hashchnged" etc.. ). Event binding ajoute des handlers au lieu de surcharger. L'interface pour la manipulation CSS est similaire à d'autres interfaces exposées par JQuery.

C'est également l' raison JQuery est si intuitif pour beaucoup de développeurs comme il enveloppe simplement ce que nous savons et n'essaie pas de réinventer HTML.

sans mentionner qu'il sauve beaucoup d'erreurs en se référant à nulls. Si je n'ai pas d'élément avec l'id guy, puis en exécutant $("#guy").text("I am not here") ne causera pas d'erreur dans JQuery.

  1. JQuery s'enroule facilement autour de L'élément DOM permettant de traverser en avant et en arrière entre le JS brut et l'interface de JQuery. Cela permet aux développeurs de apprenez le JQuery à leur propre rythme au lieu de réécrire le code entier en une seule fois.

  2. quand JQuery alimente un callback avec des arguments, il utilise L'objet DOM au lieu de l'enveloppe de JQuery. Cela permet aux tiers de s'intégrer facilement à JQuery puisqu'ils n'ont pas besoin de se fier à JQuery. Par exemple, disons que j'ai écrit une fonction qui peint le texte en rouge à L'aide de JavaScript brut. function paintRed(element){element.style.color="red"} - je peux facilement passer cette fonction comme callback à une fonction JQuery.

6
répondu guy mograbi 2012-08-21 21:13:29

vous pouvez éviter d'utiliser des variables globales et l'état lors de l'utilisation de monades (par exemple le code "pur"). Vous pourriez aussi vouloir jeter un coup d'oeil à https://github.com/brownplt/flapjax/