Node.js를 기능
자바 스크립트에서 다른 함수에 매개 변수로 함수를받습니다. 우리는 함수를 정의하고, 그 장소의 전달 함수를 직접 정의 할 전달할 수있다.
자바 스크립트와 유사한 기능을 사용 Node.js를, 예를 들어, 당신은이 작업을 수행 할 수 있습니다 :
function say(word) { console.log(word); } function execute(someFunction, value) { someFunction(value); } execute(say, "Hello");
위의 코드는, 우리는 기능을 실행 첫 번째 인수로 함수가 전달 된 말한다. 이 수익률은 말의 반환 값이 아니라 그 자체를 말한다!
따라서 말은, 지역 변수의 SomeFunction을 실행 기능의 사용을 말을 () (괄호의 형태로) SomeFunction을 호출하여 실행된다.
변수가 말을하기 때문에 물론, SomeFunction을 호출 할 때 이러한 변수를 전달할 수 있습니다 실행합니다.
익명 함수
우리는 인수로 전달하는 기능을 넣을 수 있습니다. 그러나 우리는이 정도까지가 "첫번째 정의하고, 통과"원, 우리는 괄호 안에 다른 함수를 정의하고이 기능을 전달할 수 없습니다 :
function execute(someFunction, value) { someFunction(value); } execute(function(word){ console.log(word) }, "Hello");
우리는 기능을 실행 통과 할 준비가 어디에 실행 직접 정의에서 우리는 첫 번째 인수에 동의합니다.
이러한 방법으로, 우리는 심지어는 익명 함수를 호출 이유는이 기능의 이름이 없습니다.
전송 기능은 HTTP 서버 작업을 얻는 방법이다
이 지식으로, 우리는 우리의 간단하지만 간단하지 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);
지금은 명확해야 많이 보인다 : 우리는 createServer 기능에 익명 함수를 전달합니다.
이러한 코드는 또한 동일한 목적을 달성 할 수있다 :
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);