2011-09-06 7 views
5

JS Linting el siguiente fragmento de código:JSLint esperadas 'set' y en su lugar vio ''

/*jslint 
browser: true, 
es5: true, 
*/ 

var VCA = { 
    get enable() { 
     'use strict'; 
     return 0; 
    }, 
    set enable (value) { 
     'use strict'; 
     console.log(value); 
    } 
}; 

produce el error:

Problem at line 11 character 9: Expected 'set' and instead saw ''. 

set enable (value) { 

que no entiendo qué hacer para que este ver 'set' correctamente ?!

Conozco la sintaxis __defineGetter__ pero realmente quiero usar el estilo anterior.

¿Alguien tiene más información sobre este error?

+2

Creo que esta pregunta es más adecuado para la bandeja de entrada de correo electrónico de Douglas. –

+0

@Tomalak - No sabía si mi systax era incorrecto. Lo archivará como un informe de error. –

+0

¡Es "si"! Argh! –

Respuesta

4

Parece ser un problema en JSLint. No puedo obtener ningún escenario get/set para validar en JSLint. Su sintaxis parece ser correcta, y en línea con Douglas 'initial post sobre la validación setter getter.


edición: Esto valida bien, así que podría ser una solución :-)

var myObject = {}; 

(function() { 
    var myProp = 'myDefault'; 
    Object.defineProperty(myObject, 'myProp', 
     { 
      enumerable:  false, 
      configurable: true, 
      get: function() { 
       return myProp; 
      }, 
      set: function (value) { 
       myProp = value + ' lala'; 
      } 
     }); 
}()); 
+0

Opera no es compatible con Object.defineProperty y IE no es compatible con la sintaxis de ejemplo de Matt, por lo que debe usar ambos si desea compatibilidad. – sethobrien

+0

Mweh, la mayoría de las personas que usan ES5 en modo estricto no lo están usando en un entorno web. –

+0

Solo tengo "usuario estricto" porque JS Lint se establece de manera predeterminada en ES5. –

Cuestiones relacionadas