Javascript临时变量值在我清除原始值后被清除..为什么?

Javascript临时变量值在我清除原始值后被清除..为什么?,javascript,Javascript,我将数组复制到一个临时变量tempPropertyValuesArray 然后当我清除原始数组$scope.advancedSearch.businessCard.propertyValues 它还清除了tempPropertyValuesArray 我很惊讶。这是预期的行为吗 Javascript: var tempPropertyValuesArray = $scope.advancedSearch.businessCard.propertyValues; $log.debug("tempP

我将数组复制到一个临时变量
tempPropertyValuesArray

然后当我清除原始数组
$scope.advancedSearch.businessCard.propertyValues

它还清除了
tempPropertyValuesArray

我很惊讶。这是预期的行为吗

Javascript:

var tempPropertyValuesArray = $scope.advancedSearch.businessCard.propertyValues;
$log.debug("tempPropertyValuesArray 1 : " +tempPropertyValuesArray);
$scope.advancedSearch.businessCard.propertyValues.length = 0;
$log.debug("tempPropertyValuesArray 2 : " +tempPropertyValuesArray);
日志:

在Javascript中,我将数组复制到临时变量tempPropertyValuesArray

你没有抄袭它,你提到过它。更改参照将更改原始对象

如果确实需要副本,请执行以下操作:

var tempPropertyValuesArray 
      = $scope.advancedSearch.businessCard.propertyValues.slice();

您当前正在引用它,而不是复制,它是不同的;)非常感谢。我怎样才能复制please@Jay-更新的答案
Array.prototype.slice
会简单得多…@deceze-pfft,当然会。我一定是犯了id10t错误。但是为什么要走简单的路线呢?
var tempPropertyValuesArray 
      = $scope.advancedSearch.businessCard.propertyValues.slice();