浅谈angular.copy() 深拷贝


Posted in Javascript onSeptember 14, 2017

因为项目中需要拷贝,查阅angularjs API文档,发现对angular.copy() 的解释:

复制一个对象或者一个数组(好吧,万物皆对象,数组也是一个对象)。

1> 如果省略了destination,一个新的对象或数组将会被创建出来;
2> 如果提供了destination,则source对象中的所有元素和属性都会被复制到destination中;
3> 如果source不是对象或数组(例如是null或undefined), 则返回source;
4> 如果source和destination类型不一致,则会抛出异常。 注意:这个是单纯复制覆盖,不是类似继承。

使用方法:

angular.copy(source, [destination]);

参数:

参数名称 参数类型 描述
source * 被copy的对象. 可以使任意类型, 包括null和undefined.
destination (optional) Object,array copy去的目的地. 可以省略, 如果不省略, 其必须和source是同类

返回值:

返回复制或更新后的对象

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script>
  </head>

  <body ng-app="copyApp">
    <div ng-controller="CopyController">
      <form novalidate class="simple-form">
        姓名: <input type="text" ng-model="user.name" /><br /> 
        年龄:<input type="number" ng-model="user.age" /><br /> 
        邮箱: <input type="email" ng-model="user.email" /><br />
        性别:<input type="radio" ng-model="user.gender" value="male" /> 男
        <input type="radio" ng-model="user.gender" value="female" /> 女
        <br />
        <button ng-click="reset()">重置</button>
        <button ng-click="update(user)">保存(拷贝)</button>
      </form>
      <pre>form = {{user | json}}</pre>
      <pre>master = {{master | json}}</pre>
    </div>

    <script>
      angular.module('copyApp', [])
        .controller('CopyController', ['$scope', function($scope) {
          $scope.master = {};
          $scope.update = function(user) {
            $scope.master = angular.copy(user);
            console.log($scope.master);
          };
          $scope.reset = function() {
            angular.copy($scope.user, $scope.master);
            console.log($scope.master);// Object { }
            console.log($scope.user); //undefined
          };
          $scope.reset();
        }]);
    </script>
  </body>

</html>

效果图

浅谈angular.copy() 深拷贝

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript for循环从入门到偏门(效率优化+奇特用法)
Aug 01 Javascript
javascript中的return和闭包函数浅析
Jun 06 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
Apr 29 Javascript
JavaScript中String对象的方法介绍
Jan 04 Javascript
使用jQuery卸载全部事件的思路详解
Apr 03 jQuery
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
Jun 25 Javascript
vue修改vue项目运行端口号的方法
Aug 04 Javascript
React-router4路由监听的实现
Aug 07 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 Javascript
前端使用crypto.js进行加密的函数代码
Aug 16 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 #Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
Sep 14 #Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
Sep 14 #Javascript
详解React Native顶|底部导航使用小技巧
Sep 14 #Javascript
Angularjs 1.3 中的$parse实例代码
Sep 14 #Javascript
浅谈JavaScript中的属性:如何遍历属性
Sep 14 #Javascript
基于node.js express mvc轻量级框架实践
Sep 14 #Javascript
You might like
php正则校验用户名介绍
2008/07/19 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
详解Python的Django框架中的templates设置
2015/05/11 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
浅谈python之新式类
2018/08/12 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
Python的UTC时间转换讲解
2019/02/26 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
python 通过文件夹导入包的操作
2020/06/01 Python
python中怎么表示空值
2020/06/19 Python
python实现二分查找算法
2020/09/18 Python
python pillow库的基础使用教程
2021/01/13 Python
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
Python字符串格式化方式
2022/04/07 Python