더북(TheBook)

DiContainer.register에 인자 체크 기능을 넣어야 성공한다. 빈 함수를 예제 2-13처럼 코딩하자.

예제 2-13 인자 체크 기능을 보탠 DiContainer.register

소스 파일 2장\DI\DiContainer_01.js

DiContainer = function() {
// 반드시 생성자로 객체를 생성하게 한다.
if (!(this instanceof DiContainer)) {
  return new DiContainer();
}
};
 
DiContainer.prototype.messages = {
registerRequiresArgs: ‘이 생성자 함수는 인자가 3개 있어야 합니다: ‘ +
  ‘문자열, 문자열 배열, 함수.’
};
 
DiContainer.prototype.register = function(name,dependencies,func) {
var ix;
 
if (typeof name !== ‘string’
| | !Array.isArray(dependencies)
| | typeof func !== ‘function’) {
  throw new Error(this.messages.registerRequiresArgs);
}
for (ix=0; ix<dependencies.length; ++ix) {
  if (typeof dependencies[ix] !== ‘string’) {
    throw new Error(this.messages.registerRequiresArgs);
  }
}
};

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.