2013-05-22 2 views
1

다음 줄 :자바 스크립트 함수 표현식

var A = function def() {alert();}; 

만 A는() 함수를 호출합니다. def()는 그렇지 않습니다. 왜 그래야만하지? 왼쪽면을 기능 분리라고 생각하지 않습니까?

답변

0

함수 표현식에서 함수 이름은 주로 자체 호출에 사용됩니다. IRL이 기능은 익명 함수 및 재귀 호출의 경우 편리합니다. 즉

(function def() { 
    // ... 
    def(); 
})(); 
+0

의미가 있습니다. 그러나 def()가 "function def() {}"를 사용하여 정의 된 경우 외부에서 영향을주지 않는 이유는 무엇입니까? – Boyang

+1

@CharlesW. 이것은 함수 표현식의 이름이 그것의 범위 밖에서 보이지 않기 때문입니다. – VisioN

+0

감사합니다. 그리고 그것이 우리가 많은 익명의 기능을 가질 수있는 이유입니까? 그들은 자신들의 영역에 갇혀서 충돌이나 모호성이 없기 때문에? – Boyang