Попытка упростить некоторые Javascript с помощью замыканий - PullRequest
0 голосов
/ 15 мая 2010

Я пытаюсь упростить некоторый код JS, который использует замыкания, но у меня ничего не получается (вероятно, потому что я не гроконирую замыкания)

У меня есть код, который выглядит следующим образом:

var server = http.createServer(function (request, response) {
    var httpmethods = {    
        "GET": function() {
            alert('GET')
        },
        "PUT": function() {
            alert('PUT')
        }
    };
});

И я пытаюсь упростить это следующим образом:

var server = http.createServer(function (request, response) {
    var httpmethods = {    
        "GET": function() {
            alertGET()
        },
        "PUT": function() {
            alertPUT()
        }
    };
});

function alertGET() {
    alert('GET');
}

function alertPUT() {
    alert('PUT');
} 

К сожалению, это не похоже на работу ... Таким образом: - Что я делаю неправильно? - Можно ли сделать это? - как?

1011 * ТИА *

- MV

1 Ответ

0 голосов
/ 15 мая 2010

Неправильная настройка объекта, вы помещаете имена функций в виде строк внутри объекта httpmethods вместо того, чтобы давать им имена - попробуйте что-то вроде этого:

var server = http.createServer( function (request, response) {});

var httpmethods = {
    get: function() { 
      alertGET()
    },
    put: function() {
      alertPUT()
    }
};

function alertGET() {
        alert('GET called');
}

function alertPUT() {
        alert('PUT called');
}

httpmethods.get()
httpmethods.put()

Так вы определяете методы внутри объекта, но не уверены в том, что у вас там есть (http.createServer () ...?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...