【发布时间】:2014-01-11 16:51:38
【问题描述】:
以下 nodejs 模块示例(来自 Lynda.com 节点课程)在传入一些信息时设置模块的 values 对象。假设模块名为“飞行”。
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());
我很想知道开发人员选择循环值而不是传入的 info 对象是否重要。为什么不这样做:
for(var prop in info) {
if(values[prop] !== 'undefined') {
values[prop] = info[prop];
}
}
这只是编程选择的一种风格/艺术,还是节点/javascript中的一个重要区别?我原以为如果你遍历values,就永远不会有一个未定义的值,如 null != undefined。
【问题讨论】:
-
作者只想在对象中保留预定义的键。
标签: javascript node.js