我建立一個MooTools的類,我有這在我的初始化函數:
this.css = null;
window.addEvent('domready', function(){
this.document = $(document);
this.body = $(document.body);
this.head = $(document.head);
}.bind(this));
好了,現在到了問題... 我應該聲明this.css = null或任何其他空變量在init:
this.css = null; // Maybe this.css = '' - empty string?
接下來的事情是關於窗口和文檔......我應該把它變成$()或不是因爲它是雙向的方式,所以我只是想知道哪種方式最好?所以總結:
window.addEvent() // or should I use $(window).addEvent()
this.document = $(document) // or this.document = document
this.body = $(document.body) // or this.body = document.body
我將這些值存儲到對象,以避免多個DOM查詢,這是好嗎?或者每次調用$(selector)/ $$(selector)會更好嗎?
還剩下兩件事...關於綁定...可以每次使用.bind(this)還是使用.bind(this.myDiv)會更好,並在函數內部使用它,例如。 :this.setStyle(...);而不是this.myDiv.setStyle(...)
(function(){
this.setStyle('overflow-y', 'visible');
}.bind(this.body)).delay(100);
或
(function(){
this.body.setStyle('overflow-y', 'visible');
}.bind(this)).delay(100);
而最後一件事是關於垃圾收集......我一定要自己的垃圾,以及如何做到這一點(據我所知MooTools在卸載時自行完成)。混亂的是,我在MT文檔中的函數:
myElement.destroy();
他們說:清空其所有兒童的元素,刪除和garbages的元素。在pageUnload之前清除內存很有用。
所以我必須自己做垃圾?怎麼做?何時使用.destroy()?我正在研究一個巨大的項目,我注意到IE緩慢執行腳本的多次執行(所以如何處理?可能需要一些清理,內存泄漏?)。
好的問題!順便說一下,你還在使用MooTools嗎? – Sergio 2014-06-13 22:24:12