2017-04-25 26 views
0

我的文件中./functions/login_registration_functions.js的NodeJS - 我的方法不執行

我有以下代碼

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; 
     } 

它工作正常

爲什麼我在這裏失蹤?

回答

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使用下劃線代替駝峯但我是你的這裏風格)

+0

它的工作,感謝闡述 –