2011-09-06 13 views
5

JS Linting il seguente frammento di codice:JSLint Previsto 'set' e invece ha visto ''

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

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

genera l'errore:

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

set enable (value) { 

non capisco che cosa fare per rendere questo vedere correttamente 'set' ?!

Conosco la sintassi __defineGetter__ ma voglio davvero utilizzare lo stile di cui sopra.

Qualcuno ha ulteriori informazioni su questo errore?

+2

Penso che questa domanda è più adatto per casella di posta elettronica di Douglas. –

+0

@Tomalak - Non sapevo se la mia systax fosse sbagliata. Lo archivierà come una segnalazione di bug. –

+0

È "se"! Argh! –

risposta

4

Sembra essere un problema in JSLint. Non riesco a ottenere alcun scenario get/set da convalidare in JSLint. La tua sintassi sembra essere corretta e in linea con lo initial post di Douglas sulla convalida del setter getter.


modificare: questa valida fino, quindi potrebbe essere una soluzione :-)

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 non supporta Object.defineProperty e IE non supporta la sintassi di esempio di Matt, quindi è necessario utilizzare entrambi se si desidera la compatibilità. – sethobrien

+0

Mweh, la maggior parte della gente che usa ES5 in modalità rigorosa non la sta usando in un ambiente web. –

+0

Ho solo "user strict" perché JS Lint è impostato su ES5. –

Problemi correlati