2010-08-20 57 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

相关问题