2012-07-07 2 views
0
  1. 질문은 함수로 디버깅하는 이유입니다. 함수에서 참조하는 클로저 내용이 무엇인지 어떻게 알 수 있습니까?JavaScript 닫는 방법을 디버그하는 방법은 무엇입니까?

    Google 크롬은 '스코프 변수'섹션에서 클로저를 표시하지만 다른 브라우저는 어떻게 될까요? (업데이트 : FF는 비슷한 점이 있지만 "클로저"라고하지는 않지만 지역 변수와 비슷합니다.)

  2. <을 배우는 동안 실제로 첫 번째 질문에 대한 동기 부여가 이루어집니다. > - 부록 A

    다음 코드 단편을 언급하는 저자는 루프 참조 (IE에서 루프 누락이 발생 함) (클릭 핸들러는 DOM 버튼이있는 클로저 내용을 참조).

    나는 단지 클로저 콘텐츠에 대한 클릭 핸들러로 디버깅을하는 경우인지 궁금합니다.하지만 Google 크롬은 클로저 변수를 표시하지 않습니다.

    따라서 나는
    $(document).ready(function() { 
        var button = document.getElementById('button-1'); 
        button.onclick = function() { 
        $.print('hello'); 
        return false; 
        }; 
    }); 
    

감사합니다 .. 저자는 루프 참조 문제를 알고하는 방법 궁금하네요.

+0

저자는 (이 경우) 명백한 사실을 알고 있습니다. 변수 "버튼"은 DOM 노드를 가리키며 "onclick"속성은 함수로 설정되어 있으며 해당 함수의 범위는 변수입니다. – Pointy

+0

핸들러가 실제로 버튼을 참조하는 경우에만 잠깐, 이것이 문제가되지 않습니까? 이것이 올바른 예입니까? –

+0

@Pointy 실제로 커미션은 onclick 핸들러 함수에 변수'button'에 대한 참조가 없다는 사실이 여기에 있습니다. 그러므로 변수'button'이 어떻게 그 함수를 닫을 수 있습니까? 그렇지 않으면 나는 매우 잘못된 방식으로 생각하고 있는가? – Simon

답변

1

파이어 버그를 사용하여 코드를 디버깅 할 것을 추천합니다. 자사의 가장 좋은 플러그인은 질문에 대한 정확한 답변을 가지고 있지 않지만 이러한 링크를보고 싶을 수도 있습니다.

how to trace or debug javascript closures in firebug

Debugging closures in javascript

더 많은 정보를 얻을 수 있도록 당신은 심지어 YouTube 링크를 확인하실 수 있습니다

Tools for debugging memory leaks in JavaScript

.

희망 나는 뭔가 유용한 답변을 시도했습니다.

+0

질문은 매우 구체적입니다. 이 대답은 너무 일반적입니다. 자세한 내용을 입력하십시오. –

+0

@RobW 몇 개의 링크로 내 대답을 편집했습니다. 희망이 당신을 조금 만족시킵니다. 그들이 완벽한 대답은 아니지만. :) –

+0

@RobW 첫 번째 링크는 내가 아는 최고의 솔루션 중 하나를 제공합니다. 그것은 dosent 완벽하게 질문에 대답하지만 큰 통찰력을 줄 것이다. –

관련 문제