为什么要循环一个内部对象,而不是在node.js模块中接收的对象?

以下nodejs模块示例(来自Lynda.com节点课程)将在传入某些信息时设置模块的values对象。假定该模块被称为“flight”。

 module.exports = function (info) { var values = { number: null, origin: null, destination: null, departs: null, arrives: null, actualDepart: null, actualArrive: null }; for(var prop in values) { if(values[prop] !== 'undefined') { values[prop] = info[prop]; } } var functions = { triggerDepart: function () { values.actualDepart = Date.now(); }, triggerArrive: function () { values.actualArrive = Date.now(); }, getInformation: function () { return values; } }; return functions; }; 

示例调用:

 var ausdca = { number: 382, origin: 'AUS', destination: 'DCA' }; var ad = flight(ausdca); console.log(ad.getInformation()); 

我很想知道是否开发人员select循环使用值而不是传入的信息对象是非常重要的。为什么不这样做:

  for(var prop in info) { if(values[prop] !== 'undefined') { values[prop] = info[prop]; } } 

这只是一个编程select的风格/艺术,还是在节点/ JavaScript的重要区别? 我会想,如果你循环的values ,将永远不会有一个未定义的值作为null!= undefined。

如果循环使用values ,唯一可能的分配是那些values已经有一个属性的分配。

如果循环播放info ,则模块的用户可以将新的属性引入values