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.注意要区分它和闭包的区别

 

posted @ 2021-12-26 16:03  嗜血汽车人  阅读(271)  评论(0)    收藏  举报