JSDoc (Code Dokumentation)

JSDoc ist eine MarkUp Sprache, welche gebraucht wird um JavaScript Quellcode zu dokumentieren. Der Gebrauch von JSDoc kann einem Programmierer helfen, das implementierte Interface und den Code, welcher er geschrieben hat, zu beschreiben. Es gibt diverse Tools, welche aus diesen JSDocs verständliche Formate wie HTML oder Rich Text Format generieren.

Geschichte

Das erste Vorkommen von Javadoc ähnlicher Syntax in einem JavaScript Dokument war im Jahr 1999 im Netscape/Mozilla Projekt namens Rhino. Rhino war ein JavaScript Echtzeit System, welches in Java geschrieben war.

Die Syntax und Regeln von JSDoc sind ähnlich wie die von JavaDoc. JavaDoc wird gebraucht um den Java Code zu dokumentieren. JSDoc von JavaDoc unterscheiden sich jedoch ein bisschen, da JavaScript auch dynamisches Verhalten regeln muss.

JSDoc Tags=

| Tag | Beschreibung | | @author | Der Name des Entwicklers | | @constructor | Markiert einen Funktion als Konstruktor | | @deprecated | Markiert eine Funktion als veraltet | | @exception | ein Synonym für @throws | | @exports | Identifiziert eine Methode als exportiert durch das Modul | | @param | Dokumentiert die Parameter der Methode. Optional können die {Datentypen} in geschweiften Klammern ergänzt werden | | @private | Signalisiert, dass eine Funktion privat ist | | @return | Dokumentiert den Rückgabewert der Methode | | @returns | Synonym für @return | | @see | Dokumentiert ein Zusammenhang/Abhängigkeit zu einem anderen Objekt | | @this | Beschreibt den Typ, auf welcher "this" in einem Objekt zeigt | | @throws | Dokumentiert die Exception, welche durch die Methode geworfen werden kann | | @version | Liefert die Versionsnummer einer Library |

Beispiel

/**
 * Creates an instance of Circle.
 *
 * @constructor
 * @this {Circle}
 * @param {number} r The desired radius of the circle.
 */
function Circle(r) {
    /** @private */ this.radius = r;
    /** @private */ this.circumference = 2 * Math.PI * r;
}

/**
 * Creates a new Circle from a diameter.
 *
 * @param {number} d The desired diameter of the circle.
 * @return {Circle} The new Circle object.
 */
Circle.fromDiameter = function (d) {
    return new Circle(d / 2);
};

/**
 * Calculates the circumference of the Circle.
 *
 * @deprecated
 * @this {Circle}
 * @return {number} The circumference of the circle.
 */
Circle.prototype.calculateCircumference = function () {
    return 2 * Math.PI * this.radius;
};

/**
 * Returns the pre-computed circumference of the Circle.
 *
 * @this {Circle}
 * @return {number} The circumference of the circle.
 */
Circle.prototype.getCircumference = function () {
    return this.circumference;
};

/**
 * Find a String representation of the Circle.
 *
 * @override
 * @this {Circle}
 * @return {string} Human-readable representation of this Circle.
 */
Circle.prototype.toString = function () {
    return "A Circle object with radius of " + this.radius + ".";
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

(**en.wikipedia.org/wiki/JSDoc|Wikipedia (en)]]//)