摘要:代码注释规范一语法注释的说明语法写在注释块第一行这是注释的说明切换音频播放状态播放停止省略其它代码标签语法标签的说明语法说明文字学生学生的名字类型语法可与标签结合使用,如必传参数可选参数语法可与标签结合使用,如必传参数可选参数参数有
Javascript 代码注释规范 一、语法 1. 注释的说明
语法:写在注释块第一行
</>复制代码
/**
* events-function(这是注释的说明)
* @description 切换音频播放状态(播放/停止)
*/
togglePlay: function() {
// 省略其它代码...
}
2. 标签
语法:@tagName
</>复制代码
/** @function */
function fn() {
}
3. 标签的说明
语法:- 说明文字
</>复制代码
/**
* @constructor Student - 学生
* @param {string} name - 学生的名字
*/
function Student(name) {
}
4. 类型
语法:{typeName} (可与标签结合使用,如@param)
</>复制代码
/**
* @param {string} a 必传参数
*/
function fn(a, b, c) {
}
5. 可选参数
语法:[paramName] (可与标签结合使用,如@param)
</>复制代码
/**
* @param {string} a 必传参数
* @param {number} [b] 可选参数
*/
function fn(a, b) {
}
6. 参数有默认值
语法:[paramName=value] (可与标签结合使用,如@param)
</>复制代码
/**
* @param {string} a 必传参数
* @param {number} [c=666] 参数有默认值
*/
function fn(a, c) {
}
7. 链接
语法:[link text]{@link namepathOrURL}
</>复制代码
/**
* See {@link MyClass} and [MyClass"s foo property]{@link MyClass#foo}.
* Also, check out {@link http://www.google.com|Google} and
* {@link https://github.com GitHub}.
*/
二、示例
1. 函数
</>复制代码
/**
* 转换时间字符串为时间对象
* @function _str2time
* @param strTime {String} - e.g "2017-02-13 10:02:58" or "2017-02-13" or "9:10"
* @param type {String} - e.g date, dateTime, time
*/
function _str2time(strTime, type) {
// 省略其它代码
}
2. 类/构造函数
</>复制代码
/**
* 定时器
* @class Timer
*/
function Timer() {
this._timeId = 0;
this._eventId = -1;
this.eventHandler = {
"stop": {}
};
/**
* 定时器是否处于停止状态
* @memberof Timer
* @member stopped
* @instance
*/
this.stopped = true;
/**
* 启动定时器
* @memberof Timer
* @instance
* @method start
* @param {function} handler - 定时器每次执行时调用的函数
* @param {number} interval - 定时器执行的时间间隔
*/
this.start = function (handler, interval) {
this.stopped = false;
let _recursion = function() {
this._timeId = setTimeout(() => {
handler()
.then(() => {
if (this.stopped) {
clearTimeout(this._timeId);
this._trigger("stop");
return;
}
_recursion();
})
.catch(err => {
clearTimeout(this._timeId);
this.stopped = true;
this._trigger("stop");
if (err) throw new Error(err);
});
}, interval)
}.bind(this);
_recursion();
}
/**
* 停止定时器
* @memberof Timer
* @instance
* @method stop
*/
this.stop = function () {
this.stopped = true;
}
}
/**
* 监听事件
* @memberof Timer
* @instance
* @method on
* @param {string} type - 事件类型 e.g "stop"
* @param {function} fn - 事件处理函数
* @return {number} eventId - 事件处理函数Id,用于取消监听
*/
Timer.prototype.on = function (type, fn) {
let _eventId = fn.name || ++this._eventId;
this.eventHandler[type][_eventId] = fn;
return _eventId;
}
/**
* 触发事件
* @private
*/
Timer.prototype._trigger = function (type) {
let handlerMap = this.eventHandler[type];
for (let key in handlerMap) {
handlerMap[key]();
}
}
/**
* 取消监听事件
* @memberof Timer
* @instance
* @method off
* @param {string} type - 事件类型 e.g "stop"
* @param {function} target - 事件处理函数Id或者函数名字
*/
Timer.prototype.off = function (type, target) {
let _target = (typeof target === "function") ? target.name : target;
delete this.eventHandler[type][_target];
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/107999.html
摘要:规范目的为提高团队协作效率便于后台人员添加功能及前端后期优化维护输出高质量的文档特制订此文档。 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档。 文件规范 文件命名规则 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符;命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个...
摘要:规范目的为提高团队协作效率便于后台人员添加功能及前端后期优化维护输出高质量的文档特制订此文档。 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档。 文件规范 文件命名规则 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符;命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个...
摘要:规范目的为提高团队协作效率便于后台人员添加功能及前端后期优化维护输出高质量的文档特制订此文档。 规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档。 文件规范 文件命名规则 文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符;命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个...
摘要:书写规范微软雅黑网页制作细节区代码规范区是指代码的和之间的内容。 一、规范目的1.1 概述 ..................................................................................................................................... 1 二、...
阅读 1004·2021-11-22 13:54
阅读 2971·2021-09-28 09:36
阅读 3061·2019-08-30 15:55
阅读 2018·2019-08-30 15:44
阅读 609·2019-08-29 12:31
阅读 2632·2019-08-28 18:18
阅读 1287·2019-08-26 13:58
阅读 1525·2019-08-26 13:44