@augments
优质
小牛编辑
125浏览
2023-12-01
指名这个子类继承至哪个父类,后面需要加父类名
别名:@extends
Syntax(语法)
@augments <namepath>
Overview(概述)
@augments
or@extends
标签指明标识符继承自哪个父类,后面需要加父类名。你可以使用这个标签来记录基于类和并基于原型的继承。
在JSDoc3.3.0或更高版本中,如果一个标识符继承自多个父类,并且多个父类有同名的成员,JSDoc使用来自列出的JSDoc注释中最后一个父类的文档。
Examples (例子)
在下面的例子中,Duck
类被定义为Animal
的子类。Duck
实例和Animal
实例具有相同的属性,以及 speak
方法是Duck
实例所独有的。
例如,描述一个父类和子类的关系:
/** * @constructor */ function Animal() { /** Is this animal alive? */ this.alive = true; } /** * @constructor * @augments Animal */ function Duck() {} Duck.prototype = new Animal(); /** What do ducks say? */ Duck.prototype.speak = function() { if (this.alive) { alert('Quack!'); } }; var d = new Duck(); d.speak(); // Quack! d.alive = false; d.speak(); // (nothing)
在下面的例子中,Duck
类继承自Flyable
和Bird
类,这两个父类都定义了一个takeOff
方法。由于@augments Bird
是在 Duck
文档列表中最后,JSDoc自动使用Bird#takeOff
注释来记录Duck#takeOff
。
例如,用重写方法来实现多重继承:
/** * Abstract class for things that can fly. * @class */ function Flyable() { this.canFly = true; } /** Take off. */ Flyable.prototype.takeOff = function() { // ... }; /** * Abstract class representing a bird. * @class */ function Bird(canFly) { this.canFly = canFly; } /** Spread your wings and fly, if possible. */ Bird.prototype.takeOff = function() { if (this.canFly) { this._spreadWings() ._run() ._flapWings(); } }; /** * Class representing a duck. * @class * @augments Flyable * @augments Bird */ function Duck() {} // Described in the docs as "Spread your wings and fly, if possible." Duck.prototype.takeOff = function() { // ... };