享元(flyweight)模式是一种用于性能优化的模式,“fly”在这里是苍蝇的意思,意为“蝇量级”。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。
如果系统中因为创建了大量类似的对象而导致内存占用过高,享元模式就非常有用了。在 JavaScript 中,浏览器特别是移动端的浏览器分配的内存并不算多,如何节省内存就成了一件非常有意义的事情。
享元(flyweight)模式是一种用于性能优化的模式,“fly”在这里是苍蝇的意思,意为“蝇量级”。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。
如果系统中因为创建了大量类似的对象而导致内存占用过高,享元模式就非常有用了。在 JavaScript 中,浏览器特别是移动端的浏览器分配的内存并不算多,如何节省内存就成了一件非常有意义的事情。
写一个各浏览器兼容事件绑定函数
1 | let addEvent = function (elem, type, handler) { |
缺点:每一次调用都必须执行一次if判断
在该代码被加载时,利用立即执行函数做一次判断,然后返回给addEvent正确的事件绑定函数
1 | let addEvent = (function (){ |
缺点:如果addEvent绑定事件函数一直都没有被调用,那么就白白做了一次浏览器嗅探
1 | let addEvent = function(elem, type, handler) { |
缺点:首次调用较慢
《Javascript设计模式与开发实践》