带参数的调用函数和带其他参数返回值的调用函数有什么不同

what is different between call function with parameters and call function with return value of other parameters

本文关键字:函数 调用 参数 什么 其他 返回值      更新时间:2023-09-26

如果我有这样的函数

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);

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


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