2011-09-06 3 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에서 유효성을 검사 할 수 없습니다. 귀하의 구문은 정확하고 게터 설정 유효성 검사에 관한 더글라스의 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

오페라는 Object.defineProperty를 지원하지 않습니다 (http://chat.stackoverflow.com/rooms/3254/discussion-between-matt-clarkson-and-tomalak-geretkal). IE는 Matt의 예제 구문을 지원하지 않으므로 호환성을 원한다면 둘 다 사용해야합니다. – sethobrien

+0

Mweh, 엄격 모드에서 ES5를 사용하는 대부분의 사람들은 웹 환경에서 ES5를 사용하지 않습니다. –

+0

JS Lint의 기본값은 ES5이므로 "사용자 엄격"만 있습니다. –