기능

2012-04-25 3 views
1

내가 다음 코드 한 '정의되지 않은'올바른 값을 반환기능

내가 콘솔을 통해이 코드를 테스트하고있어
module = { 

     submodule: { 

      value: 'foo', 

      init: function(){ 
       console.log(module.submodule.value); 
      } 

     } 

    }; 

내가 내 return 문을 동일한 코드를 사용하고 때 올바른 가치와 undefined를 얻을 수 있지만, init 기능 나는 정확한 가치를 얻는다. 이것은 일반적인 초급 및 사소한 질문 중 하나라고 생각하지만 현재 내 주위를 감쌀 수는 없습니다.

답변

3

함수가 아무 것도 반환하지 않습니다. 콘솔은 함수의 반환 값만 표시합니다. 이 뭔가를 반환하는 함수에 대한 필요는 없지만, 콘솔 마침내 다음, "값"을 보여

module = { 

     submodule: { 

      value: 'foo', 

      init: function(){ 
       return module.submodule.value; 
      } 

     } 

    }; 

사용하려는 경우 무슨 일 각 기능은 무엇인가 "를 반환"는 것이다. 이 무언가는 다른 곳에서 입력으로 사용될 수 있습니다. 당신이 당신의 함수 반환 뭔가를하자 (또는 즉시 기능을 종료 할 수 있기 때문에 return;를 사용)하지하기로 결정한 경우 예를 들어,

function getName(){ 
return "Manish"; 
} 

alert(getName()) //will display "Manish" sans quotes 

당신은

function sin(theta){ 
//do some math voodoo, store result in "result" 
return result; 
} 
alert((sin(theta)*sin(theta)-5)/Math.sqrt(1-sin(theta)*sin(theta))//random thingy 

같은 물건을 할 수 있지만, 그것은 반환 정의되지 않은 값입니다. 왜냐하면 은 반환하고자하는 것을 정의하지 않았기 때문입니다.. 반환 값을 사용하려고하지 않는 한 괜찮습니다.

3

메서드가 값을 반환하지 않고 콘솔에서 항상 결과를 반환하기 때문에 콘솔이 반환되지 않습니다. 기능을 콘솔에서 호출 할 때.

init 메소드에 return true을 추가하면 값이 출력되고 true가됩니다.

콘솔의 동작은 잘못 표시되지 않습니다.