说我有扩展功能
extend(obj1, obj2) -> creates new object does not mutate sources
根据文档process.env只是一个对象,但我想知道是否保存操作来执行以下操作:
process.env = extend(process.env, {MY_SETTING: 'Something'})
所以process.env会完全替换具有相同属性的新对象吗?
答案 0 :(得分:2)
它可能是安全的,但没有充分的理由去做。 env
在C ++代码(https://github.com/joyent/node/blob/v0.10.28-release/src/node.cc#L2324-L2332)中定义。正如您所看到的,访问每个属性实际上涉及getenv
调用,其具有O(n)复杂性,因此枚举和复制整个env
对象将是非常低效的。