2014-04-17 4 views
0

AngularJS의 자동 해결 종속성 뒤에있는 마법은 무엇입니까? AngularJS 의존성 주입 원칙

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

어떻게 는 firstService, secondService, thirdService 자동 주입?

+1

보세요 : http://www.alexrothenberg.com/2013/02/11/the-magic-behind-angularjs-dependency-injection.html – Whisher

답변

1

JavaScript 자동 종속성 삽입은 함수 선언의 형식으로 객체의 문자열 표현을 반환하는 Function.prototype.toString() 메서드를 기반으로합니다.

반환 된 문자열은 정규식으로 구문 분석되어 함수 인수를 찾고 실제 서비스를 찾고 인스턴스화하고 주입하는 데 사용될 이름을 반환합니다.

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

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