A volte vedo JavaScript scritto con un argomento purché abbia già un valore impostato o sia un oggetto con metodi. Prendete questo esempio jQuery per esempio:Passare argomenti in funzioni anonime in JavaScript
$(".selector").children().each(function(i) {
console.log(i);
});
Quando si accede i
, si dovrebbe ottenere il valore di qualsiasi i
è in quella iterazione se si considerano i selettori bambini nel metodo di jQuery each
.
Prendete questo Node.JS esempio:
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);
si può vedere qui che request
e response
vengono passati e contengono i propri metodi che possono essere agito su.
Per me, sembra che si passasse una funzione alla funzione createServer
con due argomenti con metodi già associati.
La mia domanda è un multipart uno:
- Da dove vengono questi argomenti vengono?
- Se queste sono solo funzioni anon, in che modo ricevono argomenti che possono essere interpretati come altre funzioni?
- Come posso creare funzioni che possono prendere i miei argomenti in questo modo ??
- Questo usa la potenza delle chiusure ??
Ma come fa 'request' e' risposta' nel mio esempio di nodo hanno già metodi ?? Questo non ha senso per me. – Sethen
@SethenMaleno: cosa intendi con "già"? I parametri non hanno valori finché non viene chiamata la funzione. – Bergi
@SethenMaleno 'request' e' response' sono solo parametri per il metodo 'createServer'. Quando viene effettivamente chiamato quel metodo, verranno passati due oggetti, che rappresentano una richiesta e una risposta che è possibile manipolare. La dichiarazione dei parametri imposta semplicemente ciò che la funzione si aspetta; la magia accade quando la funzione è chiamata – Ian