함수 표현 innerone
과 innertwo
을 사용하여 두 개의 함수를 선언했습니다. 나는 처음에 innerone
을 선언하고 그 후에는 innertwo
을 선언했습니다. 안에 innerone
나는 innertwo
함수를 호출합니다. 하지만 내 관심사는 innertwo
이 innerone
다음에 innertwo
이 게양되지 않은 함수 표현식을 사용하여 선언한다는 것입니다. 그렇다면 왜이 기능들이이 순서대로 작동합니까? 질서를 바꾸는 것이 필수입니까? 여기함수를 사용하여 함수를 선언하기 전에 함수를 호출하면됩니다. 왜?
코드
var one = function() {
var innerone = function() {
innertwo();
},
innertwo = function() {
console.log('innertwo');
};
return {
innerone: innerone
};
};
var o = new one();
o.innerone();
(전화 할 때'innerone'). 'innertwo = function() .... '전에 직접'innertwo'를 호출하면 에러가 발생합니다. –
그것은 새로운 객체 인스턴스를 생성하고'innerone'이 리턴되면'innertwo'가 이미 존재하기 때문에 작동합니다. 하지만 당신이 모듈 패턴을 사용하고있는 것처럼 보이기 때문에'new '를 사용하지 않아야한다고 생각합니다. 그냥'var o = one()'을 사용하십시오. – elclanrs
왜 처음부터이 작업을 수행합니까? 같은 결과로 끝나는 훨씬 더 명확한 방법이 있습니다. – jfriend00