You don't know JS type & grammar에는 1 장 끝에 디자인 패턴 "dependency injection"이 표시되어 있습니다.이 패턴은이 장의 요점은 아니지만이 예제에서는 혼란 스러웠습니다. 자바 스크립트의 디자인 패턴
예제 코드
은 여기에 있습니다 :function doSomethingCool(FeatureXYZ) {
var helper = FeatureXYZ ||
function() { /*.. default feature ..*/ };
var val = helper();
// ..
}
FeatureXYZ가 있는지 여부를 알 수 없으므로 사용법을 모릅니다. doSomethingCool()은 FeatureXYZ를 사용하지 않고 doSomethingCool (FeatureXYZ)는 FeatureXYZ가 없으면 오류를 발생시킵니다. 따라서 함수는 의미없는 함수 일 수 있습니다.
해결책하지만 dosomethingcool는 바깥 쪽 환경에 따라 완전히한다 기본 깃털 또는 featherxyz을 사용할지 여부를 내 경우가 아닌 방법으로 기능했다 call.As 우리는 몰라 featherxyz의 기능을 사용하면 기본 매개 변수 방식을 사용할 수 없습니다. (프로젝트에서 파일을로드 할 수 있으며 featurexyz가 종료되는지 여부조차 모릅니다) – teek
'FeatureXYZ'가없는 경우 예상되는 결과는 무엇입니까? 호출되는 기본 함수가 있거나 함수가 호출되지 않아야합니까?즉, 'FeatureXYZ'의 존재 여부에 대한 논리가 무엇입니까? – guest271314
은 dosomethingcool 함수 내에 쓰여지는 default 함수를 호출합니다. 오직 featherxyz는 디폴트 함수가 버려지는 dosomething 함수의 바깥쪽에 존재했다. – teek