@class (@constructor)【クラス (new 呼び出し関数)】
@classdesc【クラスの説明】
@augments (@extends)【継承】

@class (@constructor)【クラス (new 呼び出し関数)】

メモ

  • クラス定義を宣言
  • 関数定義で使用
    • 関数定義をコンストラクタとみなす
    • タグの省略:コンストラクタの説明
    • クラスの説明:@classdesc【クラスの説明】
    • new で生成しないと警告
    • 未指定で this を使用すると警告
  • class【クラス】 定義で使用
    • 自動認識 (タグは使用しない)
    • new で生成しないと警告

構文

@class [【クラス名】] 
シノニム:@constructor
【クラス名】:クラスの別名 (省略:定義名)

@constructor 

関連

/**
 * クラスAのコンストラクタの説明
 * @constructor
 * @classdesc クラスAの説明
 * @param {number} p1 パラメータ1
 * @param {number} p2 パラメータ2
 */
function ClassA(p1, p2) {
  // 処理
}

var classA1 = new ClassA(1, 2);
var classA2 = ClassA(1, 2);     // 警告:new なし 
/**
 * クラスXの説明
 */
class ClassX {
  /**
   * クラスXのコンストラクタの説明
   * @param {number} p1 パラメータ1
   * @param {number} p2 パラメータ2
   */
  constructor(p1, p2) {
    // 処理
  }
}

var classX1 = new ClassX(1, 2);
var classX2 = ClassX(1, 2);     // 警告:new なし 

@classdesc【クラスの説明】

メモ

  • クラスの説明を記述
  • 関数定義で使用
    • 先頭のブロックタグは、コンストラクタの説明
  • class【クラス】 定義で使用
    • 先頭のブロックタグであれば省略可

構文

@classdesc 【クラスの説明】

関連

/**
 * クラスAのコンストラクタの説明
 * @constructor
 * @classdesc クラスAの説明
 * @param {number} p1 パラメータ1
 * @param {number} p2 パラメータ2
 */
function ClassA(p1, p2) {
  // 処理
}
/**
 * クラスXの説明
 */
class ClassX {
  /**
   * クラスXのコンストラクタの説明
   * @param {number} p1 パラメータ1
   * @param {number} p2 パラメータ2
   */
  constructor(p1, p2) {
    // 処理
  }
}

@augments (@extends)【継承】

メモ

  • 継承クラスを宣言
  • 関数定義で使用
  • class【クラス】 定義で使用
    • extends【継承】 は自動認識されない為、継承クラスを記述

構文

@augments 【継承元のクラス】
シノニム:@extends

@extends {【継承元のクラス】} 

関連

/**
 * クラスAのコンストラクタの説明
 * @constructor
 * @classdesc クラスAの説明
 * @param {number} p1 パラメータ1
 * @param {number} p2 パラメータ2
 */
function ClassA(p1, p2) {
  // 処理
}

/**
 * クラスBのコンストラクタの説明
 * @constructor
 * @extends {ClassA}
 * @classdesc クラスBの説明
 * @param {number} p1 パラメータ1
 * @param {number} p2 パラメータ2
 */
function ClassB(p1, p2) {
  // 処理
}
/**
 * クラスXの説明
 */
class ClassX {
 /**
   * クラスXのコンストラクタの説明
   * @param {number} p1 パラメータ1
   * @param {number} p2 パラメータ2
   */
  constructor(p1, p2) {
    // 処理
  }
}

/**
 * クラスYの説明
 * @extends ClassX
 */
class ClassY extends ClassX {
 /**
   * クラスYのコンストラクタの説明
   * @param {number} p1 パラメータ1
   * @param {number} p2 パラメータ2
   */
  constructor(p1, p2) {
    super(p1, p2);
    // 処理
  }
}