繁体   English   中英

AngularJS依赖注入原理

[英]AngularJS Dependency Injection Principle

在AngularJS中自动解析依赖项背后的魔力是什么?

angular
    .module('app', [])
    .service('appService', 
        function appService (firstService, secondService, thirdService) { }

如何自动注入firstService,secondService,thirdService

JavaScript自动依赖注入基于Function.prototype.toString()方法,该方法以函数声明的形式返回对象的字符串表示形式。

返回的字符串使用正则表达式进行解析,以查找函数参数并返回其名称,这些名称将用于查找,实例化和注入实际服务。

(function appService (firstService,secondService,thirdService) {})
    .toString()
    .match(/^function\s*[^\(]*\(\s*([^\)]*)\)/m)[1]
    .split(',')

// => ["firstService", "secondService", "thirdService"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM