2010-08-20 10 views
5

Como una "mejor práctica" para desarrolladores front-end, ¿es malo usar la propiedad "control" para hacer referencia al objeto JavaScript?¿Es una mala práctica hacer referencia a objetos Javascript desde elementos DOM?

Aquí hay un enlace a la propiedad en cuestión: https://developer.mozilla.org/en/XUL/Property/control

He visto una gran cantidad de funciones Javascript que hacen referencia a elementos DOM utilizando selectores y luego realizan la manipulación DOM de esa manera. Pero, ¿y si comenzamos atravesando el árbol DOM y tenemos primero el elemento DOM?

EDIT 1 De acuerdo, parece que hay algo de interés aquí pero no hay contribuciones por algún motivo. Esto comenzó como una conversación entre mi compañero de trabajo y yo. Le preocupaban las referencias circulares y los posibles casos de pérdida de referencias ... ¿eso se aplica aquí? Pensé que siempre que no llamemos al delete <javascript object>, entonces estamos bien.

EDIT 2 encontré esto: JQuery methods and DOM properties

En mi mundo en este momento, estoy usando la biblioteca Microsoft AJAX donde creamos múltiples ScriptControls y ponerlos en varias páginas; que a su vez, (los ScriptControls) se "modifican" por los eventos de la página y, en ocasiones, por los eventos de otros ScriptControls. Cuando las páginas necesitan hacer algo con el elemento DOM, el Javascript usaría los métodos respectivos del objeto Javascript.

Sin embargo, parece que en JQuery (basado en la otra pregunta), es común obtener el elemento DOM y luego usar .get (0) para extraer el objeto JQuery (si existe).

así que supongo que se trata de una caza de brujas hasta ahora y todavía no hay una respuesta correcta a la pregunta :( Sé que todavía me falta un ejemplo, pero no estoy seguro de cómo abordar esto.

+0

Tengo muy poca idea de lo que esto significa. ¿Te refieres a la recolección de basura? –

+0

Me refiero al operador de eliminación en javascript. Ver: https://developer.mozilla.org/es/JavaScript/Reference/Operators/Special_Operators/delete_Operator – Gary

Respuesta

0

No estoy muy seguro de a qué se refiere exactamente. ¿Podría proporcionar un ejemplo de código simple? De lo contrario, su pregunta es un poco vaga en mi humilde opinión. Lo intentaré de todos modos:

No entiendo por qué sería cualquier referencia perdida o circular. El atributo control es solo el id (cadena) del elemento DOM "controlador", no una referencia al elemento DOM real. Si delete label.control ya no será asociado con el otro elemento DOM.

+0

Hola Daniel, siento ser vago en mi pregunta. Voy a dar un ejemplo de lo que quiero decir pronto. – Gary

+0

Parece que confunde 'label.control' con' label.for'. 'label.control' es en realidad una referencia al nodo dom con el id en' label.for' O al primer control anidado dentro de 'label'. Creo que 'delete label.control' en realidad no hace nada. – Okonomiyaki3000

Cuestiones relacionadas