2014-04-16 3 views
0

js에 새로운 내용이 있으며 때로는 코드 규칙에 익숙해지기가 어렵습니다. 그래서 질문이 있는데 어떻게 함수 표현을 선언해야합니까? 내 코드를 보아라, 내가 그것을 어떻게 했느냐, 또는, 더 좋은 연습이있다?"function expression"선언에 대한 규칙

function onAddButtonClick() { 
    var engWord = document.getElementById('engWord'), 
     japWord = document.getElementById('japWord'), 
     engVal = engWord.value, 
     japVal = japWord.value, 
     engExpr = (engVal !== ""), 
     japExpr = (japVal !== ""), 
     duplicateNum, 
     checkImg, 
     numOfWords; 

    duplicateNum = (function() { 
     var i, 
      pair; 

     for (i = 0; i < dictionary.length; i++) { 
      pair = dictionary[i]; 
      if (pair.eng === engVal && pair.jap === japVal) { 
       return 3; 
      } else if (pair.jap === japVal) { 
       return 2; 
      } else if (pair.eng === engVal) { 
       return 1; 
      } 
     } 
     return 0; 
    }()); 

    //remove focus from inputs 
    engWord.blur(); 
    japWord.blur(); 
    ... 
} 

미리 감사드립니다.

답변

1

괜찮 았어. ( 개구부를 사용하는 것은 문맥 상이 문맥에서 요구되지 않지만, 사람의 독자에게는 위대한 내용을 경고합니다. 국제 대회가 도움이됩니다.

마지막으로 ()을 호출하면 )의 내부 또는 외부로 들어갈 수 있습니다. 더크 크로포드 (Doug Crawford)는 내부를 추천하고 많은 린터 (linters)가이를 확인합니다. 개 공1 그의 주장에도 불구하고, 그것은 정말로 중요하지 않습니다. 그런데

는 기능 식의 생각은 선언 된 후 즉시 실행하는 것은 IFFE라고합니다 - 귀하의 답변에 대한 Immediately Invoked Function Expression

+0

들으을. 변수 선언과 초기화를 혼합하는 것은 어떨까요? 그러나 제 경우와 같이 'function expression'초기화를 따로 따로 두는 것은 어떻습니까? – Azaro

+0

나를 위해 특별한 경우가 있습니다. 나는'IFFE'를 많이 사용하지만, 나는 또한 모든 기능을 이동시키고 때로는 특정한 이름을 부여하는 것으로 알려져있다. 명명 된 함수는 이름이 함수가 수행하는 작업에 대한 문서가 될 수 있다는 장점이 있습니다. –