调用函数与参数和调用函数之间的区别在于其他参数的返回值

时间:2016-08-03 07:35:29

标签: javascript function

如果我有这样的功能

function cloneObj( obj ) {
    return JSON.parse( JSON.stringify( obj ) );
}



function test( obj ) {
    console.log(obj);
}

var x = {1:2};

通过这种方式调用函数之间有什么不同

 test(cloneObj(x)); 

或通过这种方式调用此功能

var y = cloneObj(x); 
test(y);

1 个答案:

答案 0 :(得分:3)

没有任何区别,除了在第二个示例中,您创建了一个y变量并在其中保留了对克隆对象的引用,并且在第一个示例中您没有(一旦您的代码完成) ,克隆的对象不再具有任何强大的 1 引用,并且可以进行垃圾收集。

1 当您记录对象时,控制台会保留对该对象的引用,但我认为它是一个不会阻止GC的弱引用(并且它是< / em>一个假设,而不是我所知道的事实。)