微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 抽象jQuery

Nicholas ZakasAddy Osmani的这些会谈中,他们讨论了在构建大规模Javascript应用程序时使用Facade模式作为沙箱的想法,以便将应用程序与底层基础库分离.

理论上,这种解耦可以让您在不需要重写应用程序模块的情况下切换出基础库.然而,在实践中,这似乎更难以实施.

这个提议的体系结构有具体的实现,例如AuraJS.但是从查看源代码看,沙箱通过从其某些方法返回jQuery对象仍然具有泄漏的抽象.

我并不特别关注AuraJS,但更多的是尝试抽象像jQuery这样的库而不会失去太多功能的一般概念.

举个例子,假设我的facade / sandBox一个dom方法.find(selector).我可以想到它可能会返回的3个选项:

>一个jQuery对象 – 这会将jQuery泄漏到消费模块中.
>一个原始的dom元素 – 功能丧失,没有人真的想用这个!没有链接.
>一个类似自定义jQuery的包装器 – 可能非常复杂,但似乎是理想的解决方案.

所以我的问题是,如何在不丢失太多功能的情况下抽象像jQuery这样的库,这样可以在未来的某些时候以最小的努力替换它?

解决方法

我认为你要求编写更多的模块化代码,但jquery并不是一个很好的例子.

异步模块定义
http://addyosmani.com/writing-modular-js/

原文地址:https://www.jb51.cc/jquery/157226.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐