JavaScriptは、すでに設定値を持っているか、メソッドを持つオブジェクトである引数で記述されていることがあります。例えば、このjQueryの例を見てみましょう:JavaScriptでの匿名関数の引数の受け渡し
$(".selector").children().each(function(i) {
console.log(i);
});
i
をログに記録するとき、あなたはjQueryのeach
方法でセレクタの子どもたちを見ているとき、その反復にあるものi
の値になるだろう。
これは例をNode.jsの乗り:
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);
あなたがrequest
とresponse
が渡されると、彼らが行動することができ、独自のメソッドが含まれていることをここで見ることができます。
私には、このメソッドには、既にメソッドがアタッチされている2つの引数を持つ関数createServer
に関数が渡されているようです。
私の質問は、マルチパートのいずれかになります。これらの引数から来るのか
- ?
- これらが単なる関数である場合、他の関数と同様に動作する引数をどのように受け取るのですか?
- このような独自の引数をとる関数を作成するにはどうすればよいですか?
- これはクロージャの力を使用しますか?
しかし、どのように 'し' request'とだからそれは、クロージャを使用して匿名関数へ
をパラメータを渡す例ですレスポンスは私のノードの例では既にメソッドがありますか?これは私には意味がありません。 – Sethen
@SethenMaleno:「既に」ということはどういう意味ですか?関数が呼び出されるまで、パラメーターには値はありません。 – Bergi
@SethenMaleno 'request'と' response'は単に 'createServer'メソッドのパラメータです。そのメソッドが実際に呼び出されると、操作可能な要求と応答を表す2つのオブジェクトが渡されます。パラメータを宣言するだけで、関数が期待しているものが設定されます。機能が呼び出されたときに魔法が発生する – Ian