2012-04-25 13 views
1

を正しい値を返すと「未定義します」 init関数私は正しい値を得るだけです。これは一般的な初心者や些細な質問の1つと推測しますが、私は現在この問題を回避することはできません:)機能は、私は、コードを次している

答えて

3

あなたの関数は何も返していません。コンソールは、関数の戻り値のみを表示します。そこに何かを返すように機能する必要はありませんが、あなたは、コンソールが最終的にそれから、「値」を示し

module = { 

     submodule: { 

      value: 'foo', 

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

     } 

    }; 

使用したい場合は何が起こるかというと、各機能が何かを「返す」ということです。この何かは他の場所の入力として使うことができます。例えば、

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 

のようなものを行うことができます。しかし、あなたはあなたの関数の戻り値が何かしましょう(あるいは、それはすぐに機能を終了することができますので、return;を使用)しないことを決定した場合、それが返されますあなたがを返すことを定義していないので、は未定義の値です。返された値を使用しようとしない限り、うまくいきます。

3

あなたのメソッドは値を返さず、コンソールは常にコンソールから呼び出されたときに機能します。

return trueをinitメソッドに追加すると、値が出力され、trueになります。

コンソールの動作だけが間違っているとは限りません。

関連する問題