0
我想知道是否有任何差异。angular.copy()和Object.assign()之间的区别是什么?
我可以看到Object.assign()
只是克隆对象,并且这样做,无论我是否更改原始对象,克隆的对象都会保留其值。
不过,我看到函数不被复制,只有枚举属性。
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('myCtrl', function($scope, $log) {
$scope.obj1 = {
prop1:() => "a string",
prop2: [1, 2, 3],
prop3: new Date(),
prop4: {
a: 1
}
};
$scope.obj2 = {
"$scope.obj1": $scope.obj1,
"angular.copy Obj1": angular.copy($scope.obj1)
};
$scope.angularClone = angular.copy($scope.obj1);
$scope.es6clone = Object.assign({}, $scope.obj1) ;
$scope.obj1.prop2= "newProp2"
$scope.obj1 = "destroyed obj1";
});
<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-sanitize.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
</head>
<body>
<div ng-controller="myCtrl">
<h3>obj1</h3> {{obj1}}
<hr>
<h3>obj2</h3> {{obj2}}
<hr>
<h3>angularClone</h3> {{angularClone}}
<hr>
<h3>es6clone</h3> {{es6clone}}
<hr>
</div>
</body>
</html>
看到这个职位的SO:https://stackoverflow.com/questions/29749433/difference-between-angular-copy-and-任务 – rrd
我已经看到它,但在片段中,您可以看到行为不同于明确的任务 –