2011-09-06 20 views
5

JS Linting aşağıdaki bit: hataylaJSLint '' 'set' ve bunun yerine testere Beklenen kod

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

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

Sonuçlar: Bunu yapmak için ne yapacağını anlamıyorum

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

set enable (value) { 

'set''a bakın doğru ?!

__defineGetter__ sözdizimini biliyorum, ancak yukarıdaki stili gerçekten kullanmak istiyorum.

Bu hata hakkında daha fazla bilgi sahibi var mı?

+2

:-) geçici bir çözüm olabilir. –

+0

@Tomalak - Systax'imin yanlış olup olmadığını bilmiyordum. Bir hata raporu olarak kaydeder. –

+0

Bu "olsun"! Ahh! –

cevap

4

JSLint'te bir sorun gibi görünüyor. JSLint'te doğrulamak için get/set senaryosu alamıyorum. Sözdiziminiz doğru görünüyor ve getter ayarlayıcı doğrulaması hakkında Douglas 'initial post ile uyumlu.


düzenlemek: Bu ince doğrular, bu yüzden bu soru Douglas'ın e-posta gelen için daha uygun olduğunu düşünüyorum

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, Object.defineProperty'yi desteklemiyor ve IE, Matt'in örnek sözdizimini desteklemiyor, bu yüzden uyumluluk istiyorsanız her ikisini de kullanmalısınız. – sethobrien

+0

Mweh, ES5'i katı modda kullanan kişilerin çoğu bir web ortamında kullanmıyor. –

+0

JS Lint, ES5 için varsayılan olduğundan, yalnızca "kullanıcı katı" var. –

İlgili konular