成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript 注釋規(guī)范

ChanceWong / 3076人閱讀

摘要:代碼注釋規(guī)范一語法注釋的說明語法寫在注釋塊第一行這是注釋的說明切換音頻播放狀態(tài)播放停止省略其它代碼標(biāo)簽語法標(biāo)簽的說明語法說明文字學(xué)生學(xué)生的名字類型語法可與標(biāo)簽結(jié)合使用,如必傳參數(shù)可選參數(shù)語法可與標(biāo)簽結(jié)合使用,如必傳參數(shù)可選參數(shù)參數(shù)有

Javascript 代碼注釋規(guī)范 一、語法 1. 注釋的說明

語法:寫在注釋塊第一行

/**
 * events-function(這是注釋的說明)
 * @description 切換音頻播放狀態(tài)(播放/停止)
 */
togglePlay: function() {
    // 省略其它代碼...
}
2. 標(biāo)簽

語法:@tagName

/** @function */
function fn() {

}
3. 標(biāo)簽的說明

語法:- 說明文字

/**
 * @constructor Student - 學(xué)生
 * @param {string} name - 學(xué)生的名字
 */
 function Student(name) {
     
 }
4. 類型

語法:{typeName} (可與標(biāo)簽結(jié)合使用,如@param)

/**
 * @param {string} a 必傳參數(shù)
 */
function fn(a, b, c) {

}
5. 可選參數(shù)

語法:[paramName] (可與標(biāo)簽結(jié)合使用,如@param)

/**
 *  @param {string} a 必傳參數(shù)
 *  @param {number} [b] 可選參數(shù)
 */
function fn(a, b) {

}
6. 參數(shù)有默認(rèn)值

語法:[paramName=value] (可與標(biāo)簽結(jié)合使用,如@param)

/**
 *  @param {string} a 必傳參數(shù)
 *  @param {number} [c=666] 參數(shù)有默認(rèn)值
 */
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. 函數(shù)
/**
 * 轉(zhuǎn)換時間字符串為時間對象
 * @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. 類/構(gòu)造函數(shù)
/**
 * 定時器
 * @class Timer
 */

function Timer() {
    this._timeId = 0;
    this._eventId = -1;

    this.eventHandler = {
        "stop": {}
    };

    /**
     * 定時器是否處于停止?fàn)顟B(tài)
     * @memberof Timer
     * @member stopped
     * @instance
     */
    this.stopped = true;

    /**
     * 啟動定時器
     * @memberof Timer
     * @instance
     * @method start
     * @param {function} handler - 定時器每次執(zhí)行時調(diào)用的函數(shù)
     * @param {number} interval - 定時器執(zhí)行的時間間隔
     */
    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;
    }
}

/**
 * 監(jiān)聽事件
 * @memberof Timer
 * @instance
 * @method on
 * @param {string} type - 事件類型  e.g "stop"
 * @param {function} fn - 事件處理函數(shù)
 * @return {number} eventId - 事件處理函數(shù)Id,用于取消監(jiān)聽
 */
Timer.prototype.on = function (type, fn) {
    let _eventId = fn.name || ++this._eventId;
    this.eventHandler[type][_eventId] = fn;
    return _eventId;
}

/**
 * 觸發(fā)事件
 * @private
 */
Timer.prototype._trigger = function (type) {
    let handlerMap = this.eventHandler[type];
    for (let key in handlerMap) {
        handlerMap[key]();
    }
}

/**
 * 取消監(jiān)聽事件
 * @memberof Timer
 * @instance
 * @method off
 * @param {string} type - 事件類型  e.g "stop"
 * @param {function} target - 事件處理函數(shù)Id或者函數(shù)名字
 */
Timer.prototype.off = function (type, target) {
    let _target = (typeof target === "function") ? target.name : target;
    delete this.eventHandler[type][_target];
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107999.html

相關(guān)文章

  • Web前端開發(fā)規(guī)范手冊

    摘要:規(guī)范目的為提高團(tuán)隊協(xié)作效率便于后臺人員添加功能及前端后期優(yōu)化維護(hù)輸出高質(zhì)量的文檔特制訂此文檔。 規(guī)范目的 為提高團(tuán)隊協(xié)作效率, 便于后臺人員添加功能及前端后期優(yōu)化維護(hù), 輸出高質(zhì)量的文檔, 特制訂此文檔。 文件規(guī)范 文件命名規(guī)則 文件名稱統(tǒng)一用小寫的英文字母、數(shù)字和下劃線的組合,其中不得包含漢字、空格和特殊字符;命名原則的指導(dǎo)思想一是使得你自己和工作組的每一個成員能夠方便的理解每一個...

    wua_wua2012 評論0 收藏0
  • Web前端開發(fā)規(guī)范手冊

    摘要:規(guī)范目的為提高團(tuán)隊協(xié)作效率便于后臺人員添加功能及前端后期優(yōu)化維護(hù)輸出高質(zhì)量的文檔特制訂此文檔。 規(guī)范目的 為提高團(tuán)隊協(xié)作效率, 便于后臺人員添加功能及前端后期優(yōu)化維護(hù), 輸出高質(zhì)量的文檔, 特制訂此文檔。 文件規(guī)范 文件命名規(guī)則 文件名稱統(tǒng)一用小寫的英文字母、數(shù)字和下劃線的組合,其中不得包含漢字、空格和特殊字符;命名原則的指導(dǎo)思想一是使得你自己和工作組的每一個成員能夠方便的理解每一個...

    Tamic 評論0 收藏0
  • Web前端開發(fā)規(guī)范手冊

    摘要:規(guī)范目的為提高團(tuán)隊協(xié)作效率便于后臺人員添加功能及前端后期優(yōu)化維護(hù)輸出高質(zhì)量的文檔特制訂此文檔。 規(guī)范目的 為提高團(tuán)隊協(xié)作效率, 便于后臺人員添加功能及前端后期優(yōu)化維護(hù), 輸出高質(zhì)量的文檔, 特制訂此文檔。 文件規(guī)范 文件命名規(guī)則 文件名稱統(tǒng)一用小寫的英文字母、數(shù)字和下劃線的組合,其中不得包含漢字、空格和特殊字符;命名原則的指導(dǎo)思想一是使得你自己和工作組的每一個成員能夠方便的理解每一個...

    xiaotianyi 評論0 收藏0
  • Web前端開發(fā)規(guī)范手冊

    摘要:書寫規(guī)范微軟雅黑網(wǎng)頁制作細(xì)節(jié)區(qū)代碼規(guī)范區(qū)是指代碼的和之間的內(nèi)容。 一、規(guī)范目的1.1 概述 ..................................................................................................................................... 1 二、...

    番茄西紅柿 評論0 收藏0
  • 前端代碼編寫規(guī)范

    摘要:前端代碼規(guī)范代碼編寫規(guī)范縮進(jìn)每一層級由個空格組成,避免使用制表符進(jìn)行縮進(jìn)。單目運(yùn)算符的操作數(shù)之間不應(yīng)該用空白隔開語句中的表達(dá)式之間應(yīng)當(dāng)用空格隔開代碼編寫規(guī)范頭部文檔類型建議使用格式的。內(nèi)聯(lián)元素寫在一行內(nèi),塊狀元素還有列表和表格要另起一行。 前端代碼規(guī)范 JavaScript代碼編寫規(guī)范 縮進(jìn) 每一層級由4個空格組成,避免使用制表符(Tab)進(jìn)行縮進(jìn)。 行的長度 每行長度不應(yīng)該超過80個...

    liangdas 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<