在我的档案./functions/login_registration_functions.js
我有以下代码
var methods = {
check_if_not_null: function (item_to_be_checked, item_to_store_the_checked_item) {
if(item_to_be_checked != null){
item_to_store_the_checked_item = item_to_be_checked;
}
}
};
module.exports = methods;
我在routes.js
文件
var log_reg_funcs = require('./functions/login_registration_functions.js');
我正在调用put
调用
log_reg_funcs.check_if_not_null(req.body.title, request.title);
但它不起作用。当我用下面的代码替换上面的代码时:
if(req.body.title != null){
request.title = req.body.title;
}
一切正常
为什么我在这里失踪?
答案 0 :(得分:2)
当你这样做时:
item_to_store_the_checked_item = item_to_be_checked;
当item_to_store_the_checked_item
是函数的参数时,您不会更改调用函数时使用的原始变量,而只会更改函数中传递的值的本地副本。
如果您传递并反对并更改了其中一个属性,那么它将按预期工作。
例如,如果你有:
var methods = {
check_if_not_null: function (item_to_be_checked, object_to_store, object_key) {
if(item_to_be_checked != null){
object_to_store[object_key] = item_to_be_checked;
}
}
};
然后你就可以做到:
log_reg_funcs.check_if_not_null(req.body.title, request, 'title');
(JavaScript使用下划线代替camelcase很奇怪,但我在这里保留你的风格)