2011-09-06 56 views
5

JS Linting下面的代碼位:的JSLint預計「設置」,而是看到'

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

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

導致錯誤:

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

set enable (value) { 

我不明白怎樣做才能使這個看到'set'正確?!

我知道__defineGetter__語法,但真的想要使用上述風格。

有沒有人有關於此錯誤的更多信息?

+2

我認爲這個問題是更適合道格拉斯的電子郵件收件箱。 –

+0

@Tomalak - 我不知道我的systax是否是錯誤的。將它作爲錯誤報告提交。 –

+0

這是「是否」!哎呀! –

回答

4

這似乎是JSLint中的一個問題。我無法獲取任何get/set方案來在JSLint中進行驗證。你的語法似乎是正確的,並符合道格拉斯關於getter setter驗證的'initial post


編輯:此驗證很好,所以可能是一個解決辦法:-)

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而IE不支持Matt的示例語法,所以如果你想兼容,你必須使用兩者。 – sethobrien

+0

Mweh,大多數在嚴格模式下使用ES5的人都沒有在Web環境中使用它。 –

+0

我只有「用戶嚴格」,因爲JS Lint默認爲ES5。 –

相關問題