我正在尝试简化一些使用闭包的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');
}
不幸的是,这似乎不起作用...... 从而: - 我究竟做错了什么? - 是否有可能做到这一点? - 怎么样?
TIA
- MV
答案 0 :(得分:0)
没有正确设置对象,你将函数名称作为字符串放在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()......?)