2010-08-20 93 views
5

作爲前端開發人員的「最佳實踐」,使用「control」屬性引用回Javascript對象是不好的?從DOM元素引用Javascript對象是不好的做法嗎?

這裏的財產中的鏈接問題: https://developer.mozilla.org/en/XUL/Property/control

我已經看到了很多的引用使用選擇DOM元素,然後執行DOM操作這樣的JavaScript函數。但是如果我們開始遍歷DOM樹並且首先有DOM元素呢?

編輯1 好吧,似乎這裏有一些利益,但由於某種原因沒有貢獻。這開始是我和我的同事之間的對話。他擔心循環引用和丟失引用的可能情況......這是否適用於此?我認爲只要我們不打電話delete <javascript object>,那麼我們很好。

EDIT 2我發現這個:JQuery methods and DOM properties

在我的世界,現在,我使用的是微軟的AJAX庫,我們創建了多個ScriptControls並把它們放在不同的頁面; (ScriptControls)通過頁面的事件以及其他ScriptControls的事件來「修改」。當頁面需要對DOM元素做些什麼時,Javascript會使用相應的Javascript對象的方法。然而,看起來在JQuery(基於另一個問題)中,通常獲取DOM元素,然後使用.get(0)從中抓取JQuery對象(如果存在)。

所以我想這是一個政治迫害至今,有還是沒有正確回答我的問題:( 我知道我仍然缺乏一個例子,但我不知道如何處理這個。

+0

我幾乎沒有想到這是什麼意思。你是指垃圾收集? – 2010-08-20 20:52:11

+0

我指的是javascript中的刪除操作符。 請參閱: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special_Operators/delete_Operator – Gary 2010-08-20 21:34:54

回答

0

我不太確定你指的是什麼,你能提供一個簡單的代碼示例嗎?否則,你的問題有點模糊,恕我直言,我會給它一個反正:

我不明白爲什麼那裏將是任何丟失或循環引用。control屬性只是「控制」DOM元素的id(字符串),而不是對實際DOM元素的引用。如果您delete label.control它將不再是與其他DOM元素相關聯。

+0

喜丹尼爾,對不起是我的問題含糊其辭。我將提供一個我很快意味着什麼的例子。 – Gary 2010-08-23 14:45:38

+0

您似乎將'label.control'與'label.for'混淆。 'label.control'實際上是對'label.for'中的id或'label'中嵌套的第一個控件的dom節點的引用。我相信'delete label.control'實際上什麼都不做。 – Okonomiyaki3000 2016-10-25 05:19:58

相關問題