浅谈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 相关文章推荐
超级强大的表单验证
Jun 26 Javascript
js下用gb2312编码解码实现方法
Dec 31 Javascript
javascript客户端解决方案 缓存提供程序
Jul 14 Javascript
JavaScript中的细节分析
Jun 30 Javascript
用js实现小球的自由移动代码
Apr 22 Javascript
js实现俄罗斯方块小游戏分享
Jan 31 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
Jan 29 Javascript
JavaScript动态生成二维码图片
Apr 20 Javascript
JavaScript实现倒计时跳转页面功能【实用】
Dec 13 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
vue实现全匹配搜索列表内容
Sep 26 Javascript
Node.js API详解之 zlib模块用法分析
May 19 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/12/14 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
java和js实现的洗牌小程序
2019/09/30 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
python获得图片base64编码示例
2014/01/16 Python
Python文件和流(实例讲解)
2017/09/12 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
如何提高python 中for循环的效率
2020/04/15 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
临床护士自荐信
2014/01/31 职场文书
火车来了教学反思
2014/02/11 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
2014年母亲节寄语
2014/05/07 职场文书
基层党支部整改方案
2014/10/25 职场文书
西安兵马俑导游词
2015/02/02 职场文书
大学生学期个人总结
2015/02/12 职场文书
调任通知
2015/04/21 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
Python opencv缺陷检测的实现及问题解决
2021/04/24 Python
MySql新手入门的基本操作汇总
2021/05/13 MySQL
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server