我当前的编程风格是 OO javascript,使用 John Resig 的 Class.extend 函数:http://ejohn.org/blog/simple-javascript-inheritance/ http://ejohn.org/blog/simple-javascript-inheritance/
这很好,但我发现自己编写了许多只在 init 上使用的 setter 和 getter。此外,当将这些对象的实例存储在数组中供以后使用时,它似乎会导致 IE 中的内存泄漏。
我开始青睐更小、更干净、更易读的代码,而不是看似矫枉过正的 OO 方法。我的想法是现在使用 jquery 将所有内容都基于 dom,并使用 .data 方法存储数据属性。例如,您无需创建新的 Tweet 对象的实例,只需将一个 div 添加到带有类 tweet 的 dom 中,然后在 .data 缓存中添加作者、时间戳、回复、发送自等属性即可那个 dom 元素。
在创建事物实例(例如 Twitter 等流中的项目)时,您对这种结构性较低的方法有何看法? OO 和原型继承是最好的方法还是严格的 dom 操作更好?
我正在做类似的事情。我采用了 OO javascript 方法。但我不使用数组,而是使用键值对象。这key是一个唯一的dom元素id,value是物体本身。它看起来像这样。
例如:
var collection = {};
var $domEl = jQuery; // jquery dom element
var myClass= new MyClass($domEl); // class instance
// add to collection
collection[$domEl.attr('id')] = myClass;
// remove
delete collection[$domEl.attr('id')];
实际上,这取决于对象的复杂性。严格的 .data 方法需要依赖所有相关方法的插件,然后将数据存储在元素数据中。我有许多与严格的元素交互无关的方法,因此我将方法和数据保留在类中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)