Así que veo un montón de código JavaScript que usa "nuevo" al hacer constructores. Después de leer parte de JavaScript Good Parts parece que usar "nuevo" no es el pijama del gato. Eso fue hace 4 años ... ¿Todavía no se recomienda? ¿Cuál es el estándar actual?¿Todavía no se recomienda "nuevo" en JavaScript?
Respuesta
¿Desde cuándo se recomienda new
? D. Crockford tiene un punto válido y una opinión fuerte, pero new
es parte del lenguaje y se usa mucho en muchos proyectos. new
es parte del prototipo de modelo de herencia y se debe usar para crear nuevas instancias con una función de constructor. Crockford señala un enfoque puramente funcional utilizando el contexto this
de manera apropiada y return this
para poder heredar propiedades y métodos entre objetos secundarios. Es una solución diferente a un problema común, pero no significa que no se debe usar new
. De hecho, uno de los más copias/fragmentos JS pegado de todos los tiempos es Crockford, el object.create
polyfill, y se utiliza new
:
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
nada ha cambiado mucho desde 2008, aparte de la Crockford de influencia Object.create
haciendo su camino en ECMAScript 5: new
todavía tiene el mismo comportamiento y desventajas que Douglas Crockford ha señalado con fuerza. Mi propia opinión es que él exageró los problemas y convirtió a los desarrolladores contra un operador útil, por lo que continúo usándolo sin problemas; Sugeriría que otros desarrolladores decidan en lugar de internalizar ciegamente y regurgitar (lo admirable) Crockford.
Estoy de acuerdo. Creo que probablemente debería haber dicho que deberíamos usarlo sabiendo que hay inconvenientes, pero que es utilizable. – Chris
- 1. ¿Todavía se recomienda más (menos el complemento CSS para Rails)?
- 2. ¿Aún se recomienda COM +?
- 3. ¿Por qué no se recomienda HibernateDaoSupport?
- 4. ¿aún se recomienda el SICP?
- 5. ¿por qué no se recomienda utilizar directivas en C++?
- 6. ¿Por qué no se recomienda eliminar una rama en CVS?
- 7. ¿Se recomienda atrapar SIGPIPE en script bash?
- 8. RubyMine Debugger.start no se llama todavía
- 9. ¿Por qué no se recomienda usar herencia múltiple?
- 10. ¿Por qué no se recomienda la comunicación directa entre fragmentos?
- 11. ¿Por qué no se recomienda llamar a LoggerFactory.getLogger (...) cada vez?
- 12. ¿Por qué no se recomienda asignar e inicializar con id?
- 13. Javascript con el nuevo o no
- 14. ¿Todavía se necesita rmic?
- 15. ¿Puede C++ 0x todavía asignar explícitamente con operador global nuevo?
- 16. ¿Todavía se usa Xlib?
- 17. ¡Todavía no consigo MVVM!
- 18. operador nuevo con la opción nothrow todavía lanza excepción
- 19. ¿Cuándo se recomienda utilizar MySQL BLOB?
- 20. ¿Se recomienda el uso del patrón mediador?
- 21. ¿Se recomienda construir un foro usando node.js?
- 22. ERROR LLVM: Todavía no se puede seleccionar: error
- 23. Javascript Crear Nuevo "Hilo"
- 24. ¿Todavía se usa Yacc en la industria?
- 25. Moq Setup no funciona, el método original todavía se llama
- 26. Java: Anotación común para "No se ha implementado todavía"
- 27. ¿Se recomienda usar cstdio, cstring, cmath, etc. en C++?
- 28. Clonar() vs Copiar constructor - que se recomienda en java
- 29. ¿Por qué md5 todavía se usa ampliamente?
- 30. JavaScript Cursor Cambiar (y cambiar de nuevo)
¡Eso es cierto! Bueno, en su libro menciona "El uso de este estilo de funciones de constructor no es recomendable" (el estilo que usa nuevo). Luego continúa describiendo otras soluciones. Es por eso que mencioné la pregunta. – Parris
No lo recomienda porque puede generar confusión en algunos casos, pero existen otras prácticas comunes para evitar confusiones, como capitalizar las funciones de constructor. Podrías decir lo mismo acerca de que Crockford no recomienda usar '++' y '--' ... – elclanrs
Creo que ambos son utilizables pero dejé de usarlos porque todas las personas con las que trabajo decidieron dejar de usar estos operadores. – Chris