2012-09-10 13 views
6

Estoy aprendiendo JavaScript desde los conceptos básicos (aunque programo en otros idiomas como C#). Me surgió la pregunta de cuál de estas dos maneras es más eficiente y debería usarse como regla general.Notación literal VS. constructor para crear objetos en JavaScript

Estoy seguro y no espero una respuesta definitiva, pero me gustaría conocer los pros y los contras generales.

Gracias!

+1

ambos tienen su uso, la opción es no utilizar uno u otro. – Ibu

+1

Muchas mejores respuestas a la misma pregunta aquí: http://stackoverflow.com/questions/4859800/should-i-be-using-object-literals-or-constructor-functions – BritishDeveloper

Respuesta

8

Los literales de objetos suelen ser el camino a seguir. Solo deben analizarse al cargar el script, lo que puede introducir varias optimizaciones mediante el motor de scripting.

Los constructores deben ser ejecutados. Eso significa que serán más lentos, pero puede agregar fácilmente algún código de validación, etc., y permiten la construcción de objetos complejos con métodos públicos, privilegiados y "atributos" privados ocultos en el ámbito de los constructores. Además, por supuesto construyen objetos que comparten un prototipo, que pueden serle útiles.

4

No tiene conocimiento de ninguna eficiencia de rendimiento de una sobre la otra. Sin embargo, la notación literal parece tener su preferencia debido al argumento de simplicidad, y porque evita el uso de constructores y la palabra clave new.

Los constructores y la palabra clave new son vistos por algunos como características negativas del lenguaje JavaScript (ver Crockford - JavaScript: The Good Parts). JSLint incluso llama al encontrar new Array() o new Object() uso.

Cuestiones relacionadas