2010-02-17 3 views
1

대답 사용되는 "모범 사례"Dashcode를 코드 변환

나는 사용자 정의 템플릿 모바일 사파리 웹 애플리케이션에 대한 자습서를 수행하고있어,이 코드 주위보기를 변경하기는 아마 빠른, 아마 쉽게 질문 :

function btnSave_ClickHandler(event) 
{ 
    var views = document.getElementById('stackLayout'); 
    var front = document.getElementById('mainScreen'); 
    if (views && views.object && front) { 
     views.object.setCurrentView(front, true); 
    } 
} 

제 질문은 단지 if에 대한 것입니다. 이 세 쌍둥이가 말하는 것은 무엇이며,보기를 바꿀 수 있기 전에 그 각각을 확인해야하는 이유는 무엇입니까? views.object은 뷰 변수가 객체 메소드에 응답하는지 테스트합니다. 왜 이것이 중요한가?

편집 -입니다 /이 질문의 요점은, 그리고 그것은 언어로 자바 스크립트를하지 간주하고 if 루프가 작동하는 방식이 아니라이 3 가지가 구체적으로 확인해야하는 이유 :

어떤 시나리오에서 viewsfront이 존재하지 않을 수 있습니까?

저는 일반적으로 코드를 중복 작성하지 않습니다. 내 MySQL의 테이블의 이름이 변경되지 않은 경우, 그냥 (중복 내 관점에서) 대신 훨씬 더 자세한의 UPDATE 'mytable' WHERE...

$mytable = "TheSQLTableName"; 
if ($mytable == an actual table && $mytable exists && entries can be updated){ 
    UPDATE $mytable; 
} 

을 말할 것이다 테이블의 이름 (또는에서 JS 예 반면 ,보기의 이름)은 "하드 코딩 된"것이 아니라 대신 사용자 입력 또는 그렇지 않으면 변경할 수 있습니다. DashCode 예제에서와 같이 코드가 올바를 수도 있습니다. 그래서 말해 봐요,이 값들이 어떻게 든 잘못 될 수 있습니까?

감사합니다.

답변

1

if는 3 개의 포인터를 테스트하여 null이 아닌지 확인합니다. null 포인터는 false로 변환되는 0입니다. 만약 그 3 포인터 중 하나가 0 (null)이면 그것들을 사용하려고 시도하지 않을 것입니다.

null 포인터를 역 참조하는 것이 자바 스크립트에서 무엇인지 모르겠지만 오류이므로 예외가 발생할 수 있습니다. if는 단지 그 가능성을 피하고 있습니다.