2011-06-22 53 views
16

有沒有人用JSDoc記錄過BackboneJS代碼?如何jsdoc註釋BackboneJS代碼?

我有問題註釋骨幹語句如:

User = Backbone.Model.extend({ 

    defaults: { a: 1 }, 

    initialize: function() { 
     // ... 
    }, 

    doSomething: function (p) { 
     // ... 
    } 
}); 

任何意見讚賞。謝謝。

+1

因爲JSDoc是JavaDoc中的端口。所以它不是爲JavaScript設計的。使用['docco'](http://jashkenas.github.com/docco/) – Raynos

+0

端口或部分? – XMen

+0

@Raynos通常你是對的,但JSDoc仍然有一個巨大的好處:它可以讓你在IDE中自動完成。 –

回答

27

我覺得它工作在某種程度上是這樣,如果你談論的JSDoc工具包:

User = Backbone.Model.extend(
/** @lends User.prototype */ 
{ 
    /** 
    * @class User class description 
    * 
    * @augments Backbone.Model 
    * @constructs 
    * 
    * Text for the initialize method 
    */ 
    initialize: function() {} 
}) 

最重要的一點是@lends標籤的位置!

它可以是一個有點棘手,但如果這行不通嘗試一些其他的例子:http://code.google.com/p/jsdoc-toolkit/wiki/CookBook

+0

謝謝,那正是我正在尋找的東西。 – sean

5

chris_b的回答對我幫助很大,樣品以及鏈接。不過,我不得不放棄@class註釋,否則它會爲該類生成兩個條目。此外,我添加了這個答案,以顯示如何註釋靜態類成員(類級別常量)。

(我們使用require.js。)

define([ 
    'jquery', 'lodash', 'backbone' 
], function($, _, Backbone) { 
    "use strict"; 

    /** 
    * Enumeration of constants that represent the different types of Hedgehogs. 
    * @memberof models/Hedgehog 
    * @enum {string} 
    * @readonly 
    */ 
    var types = { 'type1': 'Type 1', 'type2': 'Type 2' }; 

    var Hedgehog = Backbone.Model.extend(
    /** @lends models/Hedgehog.prototype */ 
    { 
     /** 
     * This is the model for Hedgehogs. 
     * 
     * @augments external:Backbone.Model 
     * @constructs 
     */ 
     initialize: function() { 
      // your code 
     }, 

     // some more methods 
    }, { 
     // static class members 
     "types": types 
    }); 
    return Hedgehog; 
});