javascript - JavaScript中的Monad

标签 javascript monads

因此,我想了解JavaScript中的monad有用的实际情况。

我阅读了有关JavaScript中Monads的文章,并了解jQuery是其用法的一个示例。但是,除了“链接”模式之外,在前端工程中使用Monads还可以有效解决哪些其他问题?

引用:

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

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

最佳答案

好吧,我认为第一篇文章很棒,而且很详尽。它描述了JQuery解决的许多问题及其monad性质。

  • JQuery包装DOM元素并提供一个更丰富的接口(interface)。解决的问题很多:较丰富的事件(“mouseenter”,“mouseleave”,“hashchnged”等)。事件绑定(bind)添加处理程序,而不是覆盖。 CSS处理的接口(interface)类似于JQuery公开的其他接口(interface)。

  • 这也是JQuery对许多开发人员如此直观的原因,因为它只是包装了我们所知道的内容,而不是尝试重新发明HTML。

    更不用说它在引用null时节省了很多错误。如果我没有ID为guy的元素,那么运行$("#guy").text("I am not here")不会在JQuery中引起错误。
  • JQuery轻松地将自身包装在DOM元素周围,从而允许在原始JS和JQuery的接口(interface)之间来回移动。这使开发人员可以按照自己的进度学习JQuery,而不必一次重写整个代码。
  • 当JQuery提供带有参数的回调时,它将使用DOM对象而不是JQuery的包装器。这使第三方无需依赖JQuery即可轻松地与JQuery集成。
    例如,假设我编写了一个函数,使用原始JavaScript将文本涂成红色。 function paintRed(element){element.style.color="red"}-我可以轻松地将此函数作为回调传递给JQuery函数。
  • 关于javascript - JavaScript中的Monad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11871065/

    相关文章:

    Haskell 元组单子(monad)太严格了?

    Haskell Monads 和 liftIO 我不明白

    javascript - 浏览器在收到响应时会导致 JS 中断吗?

    javascript - 同时以两种货币显示产品价格?

    javascript - 更有效地调用 5 次 foo.length() 或将其设置为变量然后调用它更有效

    javascript - jQuery datepicker解析日期抛出无效日期异常

    haskell - 我可以使用状态 monad 模拟交互式程序吗?

    monads - 如何在 Elixir 中编写一元值?

    javascript - Angular ui路由器状态: same template for multiple states ,不使用参数

    haskell - I/O Monad 和 ByteString 到 Char 的转换?