假設我有這樣的設置。在其中一個屬性中添加對Javascript對象的引用是一個不好的做法嗎?
var Account = function(data) {
this.data = data;
this.domElement = (function(){ code that generates DOM element that will represent this account })();
this.domElement.objectReference = this;
}
Account.prototype = {
show: function() { this.domElement.classList.remove('hidden'); },
hide: function() { this.domElement.classList.add('hidden') }
}
我的問題是,最後一行:this.domElement.objectReference = this;
這將是一個有用的東西有,因爲這樣我可以添加事件偵聽到我的DOM元素,仍然可以訪問對象本身。例如,我可以添加會影響我的DOM元素的方法,例如hide()和show(),而不必訴諸直接使用CSS修改DOM元素的可見性。
我測試了這段代碼,它的工作方式與我想要的一樣,但我很好奇這是否會導致內存泄漏或其他不愉快,或者是否可以接受?
謝謝! Luka
我看不出這是非常有用的... – elclanrs
循環這樣可能會導致悲痛,如果只有垃圾回收機制是引用計數。但我認爲大多數JS實現比這更復雜。 – Barmar
@elclanrs - 在我看來這很有用,因爲我可以定義與我的特定元素相關的自定義方法,這將導致更簡潔的代碼。我想我可以通過做hide(element)和show(element)來做同樣的事情,但我想嘗試使用原型。 – Lukich