我在寫一個Node.js應用程序。還有一些地方我必須修改函數的參數。例如,對於增加用戶這個快遞中間件請求,以便以後我可以查看:在JavaScript中修改函數參數是一種不好的做法
exports.fetchUserDetails = function (req, res, next) {
httprequest(opts, function (err, res, body) {
req.user = body.user;
next()
}
}
的事情是,我開始使用靜態代碼分析儀(ESLint),並且總是抱怨重新分配函數的參數(http://eslint.org/docs/rules/no-param-reassign )。我想這個規則是有原因的。
我知道,修改功能參數可以在這個例子中是壞的,如:
function modifyParam(param) {
param.a = 2
}
var obj = { a: 1 };
console.log(obj); // outputs { a: 1 };
modifyParam(obj);
console.log(obj); // outputs { a: 2 };
但我真的沒有看到其他的方式重構中間件我不帶參數的重新分配。
所以我的問題是:
- 我什麼時候可以使用PARAMS重新分配?
- 我該如何重構我的中間件以避免這種情況? (或者我應該像它一樣離開它)