2017-09-10 8 views
0
var mainObject = function(){ 
    var constNine = 9; 
    var a = [1,2,3]; 
    var key = 'abc'; 
    function publicFunction(){ 
    var x = 5; 
    return (x*a[0]*a[1]*constNine)+a[2]; 
    } 

    function privateFunction() 
    { 
    var x = 5; 
    return (x+a[0]+a[1])*a[2]; 
    } 

    return { 
     key: key, 
     publicFunction: publicFunction 
    } 
}(); 

:자바 스크립트 명명 규칙 : 다른 범위의 변수를 쉽게 구별 할 수 있도록 이름을 지정하는 방법은 무엇입니까? 위의 코드에서 다음

  1. mainObject는 목적뿐만 아니라 외부 JS에서 액세스 할 수있는 범위, 즉 윈도우이다.
  2. 'constNine'은 창 범위에서 액세스 할 수없는 정수 값이며 mainObject 내부에서만 사용할 수 있습니다. 상수 값입니다.
  3. 'a'는 배열이며 윈도우 범위에서 액세스 할 수 없으며 mainObject 내부에서만 사용할 수 있습니다.
  4. 'key'는 문자열 var이며 창 범위에 있습니다.
  5. 'publicFunction'은 함수이며 창 범위에 있습니다.
  6. 'x'는 정수 변수이고 publicFunction 내에서만 액세스 할 수 있습니다.
  7. 'privateFunction'은 함수이며 창 범위에서 액세스 할 수 없으며 mainObject 내부에서만 사용할 수 있습니다.

자바 스크립트 코드가 커짐에 따라 이러한 모든 JS 변수 및 개체에 대해 명명 규칙을 적용하는 것이 매우 유용 할 것입니다. 누군가이 이름을 어떻게 붙여야하는지 제안 할 수 있습니까? 즉, 시작시 밑줄이 있어야하고, 낙타의 경우 여야하며, 모든 수도 등이어야합니다.

나는 여러 가지 가이드와 질문을 this과 같이 읽었지만 위의 모든 내용을 다 다루지는 못했습니다.

+1

'const'는 ES6의 키워드입니다. –

+0

질문이 편집 됨 – maverick

+0

변수의 이름을 어떻게 정했는지, 의견을 기반으로합니다 – adeneo

답변

0

구체적 예를 보면 :

  • mainObjectconst를해야한다 (당신이 안전한 내기이다 ES6를 사용할 수 있습니다 가정).
  • 처음 세 변수는 const으로 정의해야합니다. 왜 확실하지 않은데 사용하는 변수로 '9'를 저장하려는 이유는 무엇입니까? 마찬가지로 abc?
  • x을 두 번 사용하기 때문에이 부분을 으로 정의하고 혼동을 피하기 위해으로 지정합니다. 변수를 제공 할 수있는 반면,이 (변경할 수 없습니다 사실과) 변경되지 않습니다 변수에 사용할 수 있습니다 const를 - ES6 이후

정말 VAR를 사용 할 이유가없는 범위 내에서만 (예 : if 문/for 루프와 같은 함수 또는 논리 블록 내에서) 범위를 변경하고 해당 값을 변경할 수 있습니다.

그러나 다른 이상한 일들이 여기서 일어나고 있습니다. mainObject 내부에서 사용하지 않을 때 다른 곳에서 호출하지 않는 'private 함수'를 정의하는 이유는 무엇입니까? 인수를 취하는 함수가 아닌 경우 반환 객체를 자체 const로 정의하지 않는 이유는 무엇입니까?