iT邦幫忙

2021 iThome 鐵人賽

DAY 25
1
Modern Web

JavaScript 從 50% 開始,打造函式庫不是問題!系列 第 25

JS 25 - 舉一反三,擴充專屬於自己的函式庫!

大家好!

今天要介紹的是最後一個靜態方法。
我們進入今天的主題吧!


程式碼

Felix.prototype.attach = Felix.attach = function (obj) {
    return Object.keys(obj).reduce(function (a, v) {
        if (!a[v]) a[v] = obj[v];
        return a;
    }, this);
};

上方的寫法等價於:

Felix.attach = function (obj) {
    return Object.keys(obj).reduce(function (a, v) {
        if (!a[v]) a[v] = obj[v];
        return a;
    }, this);
};
Felix.prototype.attach = Felix.attach;

實測

/* 擴充原型方法 */
Felix.prototype.attach({
    on: function (type, callback, options) {
        Felix.forEach(this, function () {
            this.addEventListener(type, callback, options);
        });
    },
    off: function (type, callback) {
        Felix.forEach(this, function () {
            this.removeEventListener(type, callback);
        });
    }
});

這十天,函式庫收錄了經常使用的方法,接下來就要由各位擴充函式庫了!
如果對文章有任何疑問,也歡迎在下方提問和建議!
我是 Felix,我們明天再見!


上一篇
JS 24 - 請求支援前,要先發送請求!
下一篇
JS 26 - 進階版互動視窗!不只警告、確認和提示,還有導覽功能!
系列文
JavaScript 從 50% 開始,打造函式庫不是問題!46

尚未有邦友留言

立即登入留言