不知道這是否是一個愚蠢的問題。我已經開始玩幾個JavaScript框架,當我看到一個函數內部沒有使用的參數時,我總是感到困惑。爲什麼在JavaScript中有必要傳遞一個參數,即使它不會在函數內部使用?
一個Backbone的例子(模式 ARG):
var Todo = Backbone.Model.extend({
validate: function(attribs){
if(attribs.title === undefined){
return "Title can't be undefined";
}
},
initialize: function(){
console.log('This model has been initialized');
this.on('error', function(model, error){
console.log(error);
});
},
});
Express的例子(REQ和下一個參數):
app.use(function(err, req, res, next){
console.error(err.stack);
res.send(500, 'Something broke!');
});
所以,我想知道,那些值只是被忽略?如果你將它們排除在外,會發生什麼?爲什麼他們必須被列入首位? (我習慣這樣的想法,如果一個函數傳遞參數是因爲它將在函數中使用)。
真的,你不*必須*;如果要訪問回調或其他調用方要傳遞給該接收函數的內容(如調用函數內部有關模型狀態的信息,可能會提供請求信息回調或「e」或事件,信息給處理函數),你(通常)在函數中提供一個標籤*給相應的參數以在函數中訪問它。否則,你只是無法訪問它('''也許,但這是一個特殊的使用情況)。 –
我認爲,從技術上講,這是一種依賴注入的形式,即DI。 –