javascript - Angular.copy 函数

标签 javascript angularjs

我最近在 Angular 教程中注意到以下代码...

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p>form = {{user}}</p>
  <p>master = {{master}}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
    $scope.master = {firstName: "John", lastName: "Doe"};
    $scope.reset = function() {
        $scope.user = angular.copy($scope.master);
    };
    $scope.reset();
});
</script>

关于行:$scope.user = angular.copy($scope.master);,这是否可以简化为:$scope.user = $scope .master; 看到 $scope.master 在这种情况下将是一个不可变的常量吗?

最佳答案

当您在 JavaScript 中对对象执行 = 时,您只是分配引用,而不是创建新对象(新引用)。在本例中,angular.copy 创建了一个新对象。

用代码术语来说:

var obj1 = {}, var obj2 = {}
obj1 !== obj2; // true
obj1 = obj2;
obj1 === obj2; // true
obj1 = angular.clone(obj2);
obj1 !== obj2; // true

关于javascript - Angular.copy 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655365/

相关文章:

javascript - 如何使用 Angular 在单击按钮时激活 CSS 动画?

angularjs - 为什么 Angular 将 undefined 设置为空 ng-model 字段

javascript - 查找包含值的嵌套对象

templates - Angular js 指令动态模板绑定(bind)

javascript - NG-表选择过滤问题

javascript - 任何用于动画饼图的 JS 框架?

javascript - 将数据从 MVC Controller 传递到 Angular View ,而不在最终 html 中显示数据值

javascript - HTML/CSS 高度 100% 和 px

javascript - 单击一次按钮禁用多个按钮

javascript - Jquery $.ajax 没有在 ASP.NET MVC 中发布数据字符串