我試圖簡化使用關閉一些JS代碼,但我還是一無所獲(可能是因爲我不所著的Grokking閉包)試圖簡化一些JavaScript與封閉
我有一些代碼,如下所示:
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
'似乎不工作'不是一個非常準確的問題描述。 – 2010-05-15 15:36:15
如果你得到'alertGET是未定義的'種錯誤,你應該嘗試將函數聲明放在'server'函數之前。除此之外,這看起來完全合法。 – FK82 2010-05-15 17:26:10
是什麼讓你覺得它簡化了將匿名函數移到外部的事情? – mplungjan 2010-05-16 14:55:47