-1 votes

Essayer de simplifier un peu de Javascript avec des fermetures

Je tente de simplifier un peu de code JS qui utilise des fermetures mais je n'avance pas (probablement parce que je ne comprends pas les fermetures)

J'ai du code qui ressemble à ceci :

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

Et j'essaie de le simplifier de cette manière :

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

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

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

Malheureusement, cela ne semble pas fonctionner... Ainsi : - qu'est-ce que je fais de travers ? - est-il possible de faire cela ? - comment ?

Merci d'avance

-- MV

0voto

danp Points 4502

Ne pas configurer correctement l'objet, vous mettez les noms de fonction en tant que chaînes à l'intérieur de l'objet httpmethods, au lieu de leur donner des noms - essayez quelque chose comme ceci :

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

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

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

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

httpmethods.get()
httpmethods.put()

C'est la manière dont vous définissez les méthodes à l'intérieur de l'objet, mais je ne suis pas sûr du reste que vous avez là (http.createServer()...?)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X