JavaScrpit 的簡單的依賴注入

依賴注入的代碼簡單實現(xiàn), 函數(shù)可以根據(jù)自己需要的參數(shù)調(diào)用參數(shù)。
這個僅僅是一種實現(xiàn)方式。

  • ja本質(zhì)上實現(xiàn)就是,
    1.讓函數(shù)轉(zhuǎn)化成字符串
    2.根據(jù)正則把函數(shù)的參數(shù)提取出來。
    3.然后用調(diào)用參數(shù)給函數(shù)自己用。
        var scope = {
            a: 12,
            b: 20,
            c: 50,
            d: 60
        };

        //函數(shù)寫什么參數(shù), 就可以從scope里面得到此參數(shù),并不是調(diào)用者決定的。
        function show(a, b, c) {
            console.log(arguments.length);
            console.log(a, b, c);
        }

        var str = show.toString(); //方法轉(zhuǎn)成字符串
        str = str.split('{')[0].match(/\(.*\)/)[0].replace(/\s+/g, ''); //用分割和正則獲取  參數(shù)字符串,剔除里面的空格
        str = str.substring(1, str.length - 1); // 把括號去掉
        var arr = str.split(','); //參數(shù)裝進(jìn) 數(shù)組里


        //找出相應(yīng)的參數(shù)
        var args = [];
        for (var i = 0; i < arr.length; i++) {
            args[i] = scope[arr[i]];
        }

        //傳參,調(diào)用函數(shù)。
        show.apply(null, args);

個人博客: www.liangtongzhuo.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容