为什么要循环一个内部对象,而不是在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