当前位置: 首页 > 工具软件 > angular-split > 使用案例 >

angular-如何实现注入依赖

云季同
2023-12-01
js中没有反射的概念,那么angular是如何实现注入依赖的呢?

简单模拟一下~

var app = {
        scope : function () {
            this.name = 'lala';
        },
        controller : function (fn) {
            str = fn.toString();
            str = str.substring(str.indexOf( '(' )+1,str.indexOf( ')' )).replace(/\s/g,'');
            var arr = str.split(',');

            fn.apply(null, arr.map(function (item) {
                return new app[item]();
            }));
        }
    }

    app.controller(function (scope ) {
        console.log(scope.name);
    })
}

    /*
    scope是一个类,
    controller 是一个负责执行函数的函数,
    首先将传入controller的参数,也就是fn函数转成字符串,
    将传入fn的实参截取出来,去app里找到相应的类,
    实例化后,再做参数传回给fn,并调用fn执行

     */
 类似资料: