Javascript 在不相互影响的情况下设置角度变量

Javascript 在不相互影响的情况下设置角度变量,javascript,angularjs,Javascript,Angularjs,我是新来的,我想我碰到了一个简单的问题。很抱歉,如果我回答了这个问题,但我找不到任何相关主题 我需要在不影响彼此的情况下设置$scope变量,但是我正在设置它们,它们都会以相同的结果进行更新: var defaultFilterValues = { show_limit: 20, purpose: {} }; $scope.filter = defaultFilterValues; console.log($scope.filter); console.log(default

我是新来的,我想我碰到了一个简单的问题。很抱歉,如果我回答了这个问题,但我找不到任何相关主题

我需要在不影响彼此的情况下设置
$scope
变量,但是我正在设置它们,它们都会以相同的结果进行更新:

var defaultFilterValues = {
    show_limit: 20,
    purpose: {}
};

$scope.filter = defaultFilterValues;

console.log($scope.filter);
console.log(defaultFilterValues);

如果我设置
$scope.filter={/*any data*/}
这两个结果都会更新,那么如何隔离
defaultFilterValue
以始终具有主要结果?

这是因为JavaScript中的所有对象都是通过引用复制的,您需要

angular.extend($scope.filter, defaultFilterValues);

不是100%确定您想要什么,但您可以使用
angular.copy()
复制未引用到原始对象的副本

参考文献


它还将清除angular添加到对象中的所有内部哈希键

,那么您到底想做什么?
$scope.filter = angular.copy(defaultFilterValues);