如何通过“按值传递”而不是“按引用传递”来复制元素

|| 下面是代码片段。基本上,\'this.leaves \'是一个数组。我想移动第一个数组元素,对其进行复制(称为frontLeaf),然后将其取消移动到原始数组,更改复制元素的某些属性,然后将该元素放入父数组元素。
var frontLeaf = this.leaves.shift();
this.leaves.unshift(frontLeaf);
frontLeaf.leftChild = tmp;
frontLeaf.rightChild = this;
this.parent.leaves.push(frontLeaf);
我的问题是,当我分配时,frontLeaf似乎是通过引用传递的
frontLeaf.leftChild = tmp; 
frontLeaf.rightChild = this;
以上两行代码似乎会影响this.leaves和this.parent.leaves ...中的两个元素,那么,如何解决此问题?     
已邀请:
Javascript通过引用传递所有对象。做您要寻找的唯一方法是创建一个全新的对象,进行深拷贝,然后将其推入。 有关使用jQuery的示例解决方案,请参见本文。     
是的,在JavaScript对象中始终通过引用传递。如果要复制对象,则必须自己编写一个深层复制例程。 我不确定您要尝试执行的操作(tmp是什么?这是什么?this.leaves的数组?),但是也许有一种方法不需要复制?     
这是我遇到相同问题时所做的事情:
var newObj = JSON.parse(JSON.stringify(oldObj));
    

要回复问题请先登录注册