2011-07-15 6 views
0

私のプログラミングの背景は、私は学校で少しJavaを学んだことです。 JavaScriptの構文は何らかの理由で私を混乱させる傾向があります。以下のJavaScriptコードは、私が何を作るべきかわからない文法のパターンです:JavaScriptの構文

私の主な混乱のポイントはパラメータです。対照的な例として、のJavaでは、1つのパラメータでメソッドを呼び出すと、その呼び出しは1つのパラメータを送信します。私は '変数'という名前のパラメータがどのように設定されているのかわかりません。

+0

パラメータ 'variable'はそのコードに設定されていません。完全なコードの外観はどうですか? –

+1

関数がfoo.readyに割り当てられているので、foo.ready( 'some value')のように実行します。 – house9

+0

注目すべき重要な点は、JavaとJavaScriptは、魔法の4文字以外の興味深いものがある限り、ほとんど完全に無関係であるということです.- – Pointy

答えて

1

foo.readyが呼び出されたときに割り当てられ、いくつかの値(おそらく関数)が渡されます。

var foo = {}; // 1. Create an object named "foo" 

    // 2. Assign a function to the "ready" property of "foo" 
foo.ready = function(variable) { 

     // 4. "foo.ready" has been invoked, and received a function to its 
     //   "variable" parameter, which it then invokes. 
     // The return value is assigned to "whatever" 
    var whatever = variable(); 

    alert(whatever); // 5. alert the value returned from the function 

}; 

    // 3. Invoke "foo.ready" passing a function as the argument. 
    //   The function merely returns a string 
foo.ready(function() { return "Hello world"; }); 

ここで働い例です:

// foo is an object 
var foo = {}; 

// Create a function and assign to the ready property 
foo.ready = function(variable){ 
    var whatever = variable.bar(); 
}; 

// Create an object that contains a function named bar 
var x = { 
    bar: function(){ return 42; } 
}; 

// Call the function in foo with the object as parameter 
foo.ready(x); 

表現variable.bar()値を返すオブジェクトxで関数を呼び出します。ここではhttp://jsfiddle.net/69grz/

+0

'.bar()'はどこに定義されていますか? –

+0

@ヤード:どのバー? ; o)私はちょうどコメントで更新しました。同時にバーを取り除いた。しかし、ありがとう。 :o) – user113716

1

変数は実際の変数よりもはるかに多くなる可能性がありますが、関数またはハンドラ/オブジェクトでもあります。この場合、オブジェクトの関数bar()を呼び出します。variable

1

foo.readyは、関数全体を指します。任意の数の引数でfoo.ready()に電話することもできます。これは典型的なコールバックパターンです:fooオブジェクトを担当している人は、準備ができたらあなたに電話したいので、この機能を彼女に渡します。

あなたの関数に渡す変数の数(実際の型のどれ!)を制御することはできませんが、少なくとも1つの変数を受け取ると伝えられているはずです。

1

は仕事があることになり、いくつかのコードです42が割り当てられ、変数whateverに割り当てられます。