2011-06-14 5 views
4

내 코드가 JSDoc (v2.4.0)을 사용하여 개체 리터럴의 각 속성을 설명하는 문서를 생성 할 수 있기를 기대했지만 작동하지 않았습니다. 누구든지 getter/setter를 사용하는 코드에서 문서를 생성하기 위해 JSDoc을 사용하는 방법을 알고 있습니까?JSDoc 및 JavaScript 속성 getter 및 setter

/** Enum of days of week. */ 
var Day = { 
    /** Sunday. */ 
    get Sun() { return 0; }, 
    /** Monday. */ 
    get Mon() { return 1; }, 
    /** Thuesday. */ 
    get Tue() { return 2; }, 
    /** Wednesday. */ 
    get Wed() { return 3; }, 
    /** Thursday. */ 
    get Thu() { return 4; }, 
    /** Friday. */ 
    get Fri() { return 5; }, 
    /** Saturday. */ 
    get Sat() { return 6; } 
} 

답변

2

당신은 jQuery를 스타일 게터/세터 메소드를 사용할 수 있습니다 : 난 그냥 마이클 자신과 함께 바로이 문제를 논의되었다

/** 
* Get colour of object 
* @returns {mixed} 
*//** 
* Set colour of object 
* @param {mixed} val 
* @returns {this} 
*/ 
colour: function(val) { 
    if (val === undefined) 
     return this.colour; 
    else { 
     this.colour = val; 
     return this; 
    } 
} 

. 매우 멋진 기능으로 jsDoc3 (https://github.com/micmath/jsdoc)에서 가능합니다.

http://groups.google.com/group/jsdoc-users/browse_thread/thread/d4c7794bc8f6648e/94df7339e1fc4c91#94df7339e1fc4c91

+2

구문은 ES5 구문이 있음을 보여 주며 완벽하게 표준이며 모든 구현 관련 사항이 아닙니다. 키워드가 아닌 get/set의 경우 여기에서 적절한 방법은 컨텍스트 * 키워드라는 것입니다. 'get' 다음의 토큰이 콜론이면, 그것은 데이터 프로퍼티입니다. 'get'에 이어지는 토큰이 이름이라면 그것은 접근 자 속성입니다. (물론 'set'과 동일합니다.) –

+0

@Jeff 흥미로운 점입니다. 나는 게임을했고이 구문은 ie9, ff3.5, chrome15 및 노드에서는 훌륭하게 작동하지만 이전 IE에서는 분명히 작동하지 않는 것으로 보입니다. ES5'defineProperty' (IE8 +에서 작동)에 대해 읽었지만 ES5 스펙에서 객체 리터럴 구문을 발견하지 못했습니다. 나는 나의 대답을 조금 업데이트했다. –

+0

@ Jeff를 부탁합니다. IE6-IE7에서 가장 기본적인 getter/setter 기능을 제공하는 fall-in'Object.defineProperty' 함수를 정의 할 수 있는지 알고 있습니까? –

4

사용 @type 자바 스크립트 getset 접근을 문서화 : 여러 docblocks (세터에 대한 게터 하나 하나)을 스택 할 수 있습니다. 다음과 같은 뭔가 JSDoc와 함께 작동합니다 : 이것은 number의 유형 구성원으로 각 속성을 문서화

/** 
    * Sunday. 
    * @type {number} 
    */ 
    get "Sun"() { return 0; }, 
    /** 
    * Monday. 
    * @type {number} 
    */ 
    get "Mon"() { return 1; }, 

.

관련 문제