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