2012-07-27 5 views
6

내가 이런 식으로 자바 스크립트 코드를 가지고 값을 반환하지 않는 =>익명 함수는 항상

(function(){ 
    document.getElementById("element").onclick = function(){ 
     var r = confirm("Are you sure ?"); 
     if (r){ 
      return true; 
     } else { 
      return false; 
     } 
    } 
})(); 

이 스크립트가 작동하지만, 단지 나에게 통지 익명 함수하지 않는 그것에 대해 엄격한 경고를 제공합니다 항상 어떻게이를 방지 할 수 있고 어떤 문제를 유발합니다, 값

나는 그게 무슨 뜻인지에 관심을 반환? 어떤 아이디어라도 주시겠습니까? 감사합니다 :)

답변

8

그것 때문에 익명 함수의 아니라 그 returnelse가 중복되어 있기 때문에입니다. if 문이 true가 아니고 기본값 인 return이 실행되면 함수가 반환되기 때문에 필요하지 않습니다.

(function(){ 
    document.getElementById("element").onclick = function(){ 
     var r = confirm("Are you sure ?"); 
     if (r){ 
      return true; 
     } 
     return false; 
    } 
})(); 

편집 :

으로 성운은이 훨씬 단축 할 수있는 것을 : 사실

(function(){ 
    document.getElementById("element").onclick = function(){ 
     return confirm("Are you sure ?"); 
    } 
})(); 
+0

'반환 확인을하는 것입니다? – nebulae

+0

예, 그냥 경고 이유를 보여주고 싶습니다. – elclanrs

+0

그래서 "return"이 일반적이지 않으므로 경고합니다. – tnanoba

6

strict warning 당신이 "당신 때문에 스크립트에 있지만 경우에 사용할 수 strict mode의지고있다 엄격한 사용 "은 스크립트에서 사용되지 않는다고 생각합니다. 주석에서 말한대로 Komodo IDE을 사용하고 있으며 아마도 JavaScript 디버깅의 브라우저 측 구성 요소를 지원하는 데 필요한 Firefox Extension for Debugging이 설치되어 있어야합니다.

그럼 당신이 eneble하거나 사용하지 않도록 설정할 수 있습니다 일부 설정이있는 경우. 단지 편집 메뉴> 환경 설정으로 이동 strict mode warnings을 해제> 자바 스크립트 (카테고리) 선택을 취소하려면 그거야, 엄격한 경고 메시지을 사용합니다. 그러나 strict mode을 사용하는 것은 좋은 프로그래밍 습관입니다. 아니, '같은 효과를 가질 것이다 아래 스크린 샷 ("? 당신이 확실") 당신에게

enter image description here

+2

않습니다입니다 , 코모도의 "엄격한 경고 메시지"는 엄격 모드와 관련이 없습니다. 그들은 서로 다른 두 가지입니다. Strict 모드는 실제로 코드의 의미를 변경합니다. 코모도의 엄격한 경고는 이와 같은 것에 대한 단순한 경고 일뿐입니다. 엄격한 모드를 사용하는지 여부에 관계없이 이러한 경고는 모든 코드에 적용될 수 있습니다. –

관련 문제