Я изучаю node.js и JavaScript. Ниже приведен код. Я обнаружил, что var http
находится вне функции start2
. Мне интересно, почему это работает? Поскольку мы экспортируем только функцию start2
, правильно?Время переменной переменной JavaScript
Это понятие о закрытии? (Я пытался поставить вар http
внутри start2
. Он работает точно.)
var http = require('http');
function start2(){
function onRequest(request,response){
console.log("Request recieved");
response.writeHead(200,{"Content-Type":"text/html"});
response.write("<h1>Hello world</h1>");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start=start2;
Да, вы объяснили это :), но не имеет ничего общего с названием жизни. – Sarath
Это классический пример закрытия. Закрытие - это особый вид объекта, который объединяет две вещи: функцию и среду, в которой эта была создана функция. Среда состоит из любых локальных переменных, которые были в пределах области действия в момент создания закрытия. –