天天看点

Node.js --- 使require返回浅拷贝对象

由于commonJs 模块化使用的是值传递,ES6为引用传递,

所以node中require方法返回值不管对象还是基本类型都是不会互相影响的。

方法:返回对象内部使用引用对象赋值

obj.js

class C {
        constructor() {
                this.S = null
        }

        init(value) {
                this.S = { s: value }
        }
}

var obj = new C()
obj.init('Hello')
console.log(obj.S.s)

module.exports = obj

           

index.js

var obj = require('./obj')

obj.init('Hi')

console.log("index.js: " + obj.S.s)

           

结果:

obj.js中打印:obj.js: Hello
index.js中打印:index.js: Hi     // 全局变量修改成功
           

继续阅读