10

Queridos amigos, ¿qué debo hacer con estas advertencias de error que produce el compilador de cierre? Muchas gracias por sus ideas y improtements de código en este tipo particular de error:`¿No se puede crear una instancia de advertencia de compilador de cierre no constructivo`?

  1. JSC_WRONG_ARGUMENT_COUNT: Función parseInt: llamada con 1 argumento (s). La función requiere al menos 2 argumento (s) y no más de 2 argumento (s). en la línea 593 de caracteres 12
    if (parseInt(jQuery.browser.version) < 7) {

  2. JSC_NOT_A_CONSTRUCTOR: no se puede instanciar no constructor en la línea 708 de caracteres 15
    lightbox = new Lightbox(this, opts.lightbox);

  3. JSC_NOT_A_CONSTRUCTOR: no se puede instanciar no constructor en la línea 1265 de caracteres 19
    var scroller = new Scroller($(this), opts);

Respuesta

18

Número 1:
Esta advertencia significa que ingresó la cantidad incorrecta de argumentos en una llamada de función.

Here es una explicación mejor

Número 2 & 3:
El compilador espera que todos los constructores para ser marcados con la etiqueta @constructor jsdoc, así:

/** 
* @constructor 
*/ 
function MyClass() { 
    this.foo = 'bar'; 
} 
var obj = new MyClass(); 
alert(obj.foo); 

Here es una mejor explicación.

+0

Entonces, ¿qué hacer si el código es suministrado por un tercero, como una biblioteca que ha sido ofuscado? – AndroidDev

+0

Esa es una pregunta difícil, mi amigo. No tienes más remedio que Ye Olde "Guess & Test". Usa tus puntos de ruptura e interroga las propiedades del objeto ... adivina qué son y prueba los resultados - Buena suerte –

3

Para la primera, quiere que pase dos parámetros a parseInt: value y radix. Durante 10 basados ​​en números (que es su caso), es necesario (realmente no necesita sino que quiere que) llama

parseInt(jQuery.browser.version, 10) 
+0

No * tienes * para especificar el segundo argumento, pero deberías: "Si bien este parámetro es opcional, especifica siempre es para eliminar la confusión del lector y garantizar un comportamiento predecible. Las diferentes implementaciones producen resultados diferentes cuando no se especifica una raíz ". https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt –

+0

@lwburk: No dije que tuviera que especificar dos parámetros, dije que el compilador de cierre quiere que lo haga, de eso es de lo que se queja. Por favor elimine su voto abajo. – Andrey

+1

+1 Para contrarrestar downvote feo – Paulpro

Cuestiones relacionadas