js-fn函数返回一个引用变量的细节
1.直接返回一个字面量对象
function fun1() { return { age:10, name:'adain' } a = fun1(); b = fun1(); b.age = 18 ; console.log(b.age) // 18 console.log(a.age) // 10 可见:函数返回值为一个字面量对象时,每次调用会在内存堆中创造一个全新的对象,并将它的引用地址赋给调用它的变量
工厂模式本质也类似,每次调用工厂函数都会在内部调用new方法构造一个全新的对象,并将这个"组装完成的对象"的引用地址返回
注意js本身使用时浅拷贝,对于引用变量它复制的是对应的内存地址
2.注意要区分它和闭包的区别

浙公网安备 33010602011771号