node.js是否保存以替换process.env对象?

时间:2014-05-24 11:40:26

标签: node.js

说我有扩展功能

extend(obj1, obj2) -> creates new object does not mutate sources

根据文档process.env只是一个对象,但我想知道是否保存操作来执行以下操作:

process.env = extend(process.env, {MY_SETTING: 'Something'})

所以process.env会完全替换具有相同属性的新对象吗?

1 个答案:

答案 0 :(得分:2)

它可能是安全的,但没有充分的理由去做。 env在C ++代码(https://github.com/joyent/node/blob/v0.10.28-release/src/node.cc#L2324-L2332)中定义。正如您所看到的,访问每个属性实际上涉及getenv调用,其具有O(n)复杂性,因此枚举和复制整个env对象将是非常低效的。