2014-02-28 1 views
-2

JsFiddle에서 일부 자바 스크립트 코드를 실험하고 있었는데 코드를 이해하지 못해 완전히 비어있었습니다. JsFiddle 링크는 http://jsfiddle.net/K3w7c/자바 스크립트 코드도 이해할 수 없습니다. 유스 케이스

질문 : 다음은 무엇을 의미합니까?

window.onload=function(){ 
var clicked = function(){ 
    alert('i am hit'); 
} 
} 

어떻게 내가을 유의하시기 바랍니다

<a href="#" onclick="clicked();">Hit me</a> 

같은 코드에서 뭔가 기능을 "클릭"전화를 수행하는 방법 : 나는 함수 정의가 window.onload를 벗어난 경우 다음이 작동합니다 알고 있지만 window.onload 안에 함수 선언이있을 때 실제로 사용 사례를 이해할 수 없으며 그러한 선언이있는 경우 어떻게 호출해야합니까?

감사합니다.

+1

"범위"및 "폐쇄"에 대해 자세히 알아 보려면 http://stackoverflow.com/questions/500431/javascript-variable-scope 및 http://stackoverflow.com/questions/111102/how-do-javascript- closures-work – elclanrs

+0

나는이 질문에 어떤 문제가 있는지, 많은 부정 투표를하는지 정말로 확신하지 못한다. 그것은 내가 코드 조각을 이해할 수 없다는 진정한 질문이었습니다. –

+0

그것은 매우 간단합니다. 사용자가 연구 노력의 부족으로 당신을 downvoting하는 이유가 있습니다. 그것은 onclick 이벤트가 호출되는 함수입니다. –

답변

2

당신이 window에 선언해야하고, 당신이 load 이벤트에 clicked를 선언 할 경우,이 방법을 사용할 수 있습니다 clicked 기능을 사용하는 방법

+0

@ amr1r_5h, 이러한 접근 방식이 유용한 유스 케이스. 즉 윈도우가로드되면 함수를 생성합니다. –

+1

'load' 이벤트에서'event handler '를 선언하는 것은 흔하지 않습니다. 왜냐하면이 선언은 전에로드 될 애셋을 필요로하지 않기 때문에 모든 애셋이로드 될 때 작업을 수행해야 할 때'onload'가 사용되기 때문입니다 –

-1

onload는 객체로드가 완료되면 실행되는 이벤트입니다.

일반적으로 자바 스크립트를 실행하기 전에 모든 것이 준비되었는지 확인하는 데 사용됩니다.

window.onload(function(){ 
thirdPartyLib.init(); 
}); 
+0

질문은'onload' 이벤트에 관한 것이 아닙니다 –

+0

그래, 알아. 하지만 내 질문에 거기에 어떤 유스 케이스가있을 것입니다 어디에서 onload 내부 함수 선언을해야합니까? –

1

을 클릭 var에 로컬 변수가 아닌 글로벌 변수입니다 그래서 당신은 할 수 없습니다 : 당신이 인출 될 필요가 외부 라이브러리를 사용하는 코드를 실행하는 경우

일반적인 사용 사례입니다 그 꼬리표를 방문하십시오.

window.onload=function(){ 
    clicked = function(){ 
     alert('i am hit'); 
    } 
} 

clickedwindow에 정의 된 var 키워드를 생략하여 :

0

clicked 기능을 전역으로 설정해야합니다.

window.onload=function(){ 
    clicked = function(){ 
    alert('i am hit'); 
} 
} 

var 만 제거하면됩니다. 그렇게 할 것입니다.

관련 문제