Inicializando una variable como no definida [cerrado]

7

Haciendo un poco de refactorización, noté un patrón inusual con el que no estoy familiarizado. Las propiedades y variables que aún no tienen un valor se inician con undefined declarado explícitamente, a pesar del hecho de que las variables de valor y las propiedades del objeto se evaluarían como undefined de todos modos:

var foo = undefined;
this.prop = undefined;

¿Hay alguna razón para hacer esto?

    
pregunta stinkycheeseman 20.11.2013 - 20:34

2 respuestas

4

Es posible que el autor provenga de un entorno donde todas las variables debían inicializarse cuando se declararon. Algunas herramientas de verificación de código también se quejarán si las variables no se inicializan antes de usarlas (incluso si el primer uso es asignar un valor).

    
respondido por el TMN 20.11.2013 - 20:44
1

Teniendo en cuenta tus dos ejemplos, siempre hago el segundo, pero nunca el primero.

function Foo() {
    this.bar = undefined;
    ....
}

Esto crea una lista explícita de propiedades disponibles de un vistazo para fines de mantenimiento. 1 Es equivalente a declarar miembros públicos en lenguajes orientados a objetos basados en clases:

class Foo:
    def __init__(self):
        self.bar = null;

Confiar en el undefined predeterminado en Javascript es similar a usar setattr para crear propiedades dinámicas en Python. Puede hacerlo, y es la solución correcta en algunos casos raros, pero no va a ayudar a los mantenedores.

1 No uso null para esto, porque a veces null es un valor válido: verificar si una propiedad es null o undefined me dice si se inicializó antes de ser usado en algún lugar.

    
respondido por el Izkata 21.11.2013 - 02:42

Lea otras preguntas en las etiquetas