2013-10-04 1 views
3

이 내가 myFunc의 경고 2를 실행하고 두 번째 내가 그것을 "something else" 경고를 실행할 때 자바 스크립트javascript 함수 자체가 함수 내부에서 다시 작성됩니다. 어떻게 장면 뒤에서 작동합니까?

의 장면 뒤에 어떻게되는지 이해하려면 이미

function myFunc(){ 

    alert("3"); 

    myFunc = function(){ 

     alert("something else"); 

    } 


} 

을 시도하는 코드이다. myFunc이 호출 될 때 장면 뒤에서 어떤 일이 일어나고 있으며 함수 내에서 함수가 어떻게 다시 작성됩니까?

답변

5

myFunc은 전역 네임 스페이스에 있으므로 새 기능을 할당 할 때 myFunc = function() ...으로 다시 정의 할 수 있습니다.

함수는 객체이므로 시간이 지남에 따라 새 정의가 할당 될 수 있습니다. 함수가 다시 실행되지 않도록하려면 myFunc = undefined;을 설정할 수도 있습니다. 우리가 같은 함수 내에서 기능을 재정의

+1

권자 –

+0

@bernhard 유지하지 , 그들은 다른 기능입니다. – Rex

+0

도 이렇게하는 이유는 활성화 객체가 같은 몸 ???에서 재정의, 같은 –

1

두 번째로 기능을 다시 선언하기 만하면됩니다.

페이지로드

, 당신은 당신이 myFunc()을 실행하면 3
, 당신은 "뭔가 다른"경고 새로운 함수를 선언 경고하는 myFunc() 선언;

관련 문제