53 votos

jshint "Posible estricto de la violación." cuando el uso de `enlazar`

Considere la posibilidad de este código simple:

"use strict";

var obj = {
    f: function() {
        this.prop = 'value';
        g.bind( this )();
    }
};

function g() {
    console.log( this.prop );
}

Si intento validar este código, jshint me da el error de Possible strict violation. donde puedo llamar console.log( this.prop );. Esto es debido a que this no está definido en modo estricto en una función.

Pero estoy enlazando esta función antes de llamar, por lo this es el objeto correcto.

Estoy usando este "patrón de diseño" para evitar engordar el objeto principal. Pasando las propiedades de los parámetros también el desorden de la función, así que me niego a hacerlo. Además, esto es exactamente lo bind .

Hay una manera de jshint que me permita hacer esto?

98voto

Anton Kovalyov Puntos 1413

Es extremadamente difícil de detectar este caso sin ejecutar el código. Usted puede utilizar la opción validthis a suprimir esta advertencia:

"use strict";

var obj = {
    f: function() {
        this.prop = 'value';
        g.bind( this )();
    }
};

function g() {
    /*jshint validthis:true */
    console.log( this.prop );
}

Cabe señalar que jshint comentarios son en función del ámbito. Así que el comentario va a trabajar para la función g y su interior en funciones, no sólo la línea siguiente.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X