JavaScrpit 的簡單的依賴注入

liangtongzhuo發表於2017-12-14

依賴注入的程式碼簡單實現, 函式可以根據自己需要的引數呼叫引數。 這個僅僅是一種實現方式。

  • ja本質上實現就是, 1.讓函式轉化成字串 2.根據正則把函式的引數提取出來。 3.然後用呼叫引數給函式自己用。
        var scope = {
            a: 12,
            b: 20,
            c: 50,
            d: 60
        };

        //函式寫什麼引數, 就可以從scope裡面得到此引數,並不是呼叫者決定的。
        function show(a, b, c) {
            console.log(arguments.length);
            console.log(a, b, c);
        }

        var str = show.toString(); //方法轉成字串
        str = str.split('{')[0].match(/\(.*\)/)[0].replace(/\s+/g, ''); //用分割和正則獲取  引數字串,剔除裡面的空格
        str = str.substring(1, str.length - 1); // 把括號去掉
        var arr = str.split(','); //引數裝進 陣列裡


        //找出相應的引數
        var args = [];
        for (var i = 0; i < arr.length; i++) {
            args[i] = scope[arr[i]];
        }

        //傳參,呼叫函式。
        show.apply(null, args);
複製程式碼

個人部落格: www.liangtongzhuo.com

相關文章