Latest web development tutorials

funkcja node.js

W JavaScript, funkcja jako parametr do innej funkcji odbiera. Można określić funkcję, a następnie przechodzi się bezpośrednio określona w funkcji transferowej miejscu.

Node.js wykorzystywać funkcję podobną do Javascript, na przykład, można to zrobić:

function say(word) {
  console.log(word);
}

function execute(someFunction, value) {
  someFunction(value);
}

execute(say, "Hello");

Powyższy kod, mówimy, że funkcja jako pierwszy argument wykonywać funkcje zostały przekazane. Ten powrót nie jest wartość zwracana powiedzieć, ale mówi się!

W związku z tym mówi się wykonać zmienne lokalne someFunction, wykonanie przez wywołanie someFunction () (w formie nawiasach) znaczy wykorzystanie funkcji.

Oczywiście, ponieważ twierdzą, że jest to zmienna, wykonanie może przekazać taką zmienną Dzwoniąc someFunction.


funkcja Anonymous

Możemy umieścić funkcję przekazany jako argument. Ale nie mamy na ten temat "po raz pierwszy zdefiniowany, a następnie przekazać," okrąg, możemy określić inną funkcję w nawiasach i przekazać tę funkcję:

function execute(someFunction, value) {
  someFunction(value);
}

execute(function(word){ console.log(word) }, "Hello");

Akceptujemy pierwszy argument w wykonywanie bezpośrednio określa, gdzie jesteśmy gotowi przejść do wykonywania tej funkcji.

W ten sposób, nie ma nawet nazwę dla tej funkcji, dlatego nazywany jest anonimowa funkcja.


Funkcja transferu jest to, jak dostać pracę serwera HTTP

Posiadając tę ​​wiedzę, możemy spojrzeć na nasze proste, ale nie prosty serwer HTTP:

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(8888);

Teraz wygląda o wiele powinno być jasne: mijamy anonimową funkcję z funkcją createServer.

Kod taki może osiągnąć ten sam cel:

var http = require("http");

function onRequest(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}

http.createServer(onRequest).listen(8888);