浅谈angular.copy() 深拷贝
发布时间 - 2026-01-11 03:15:08 点击率:次因为项目中需要拷贝,查阅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>
效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# AngularJS
# copy
# 深拷贝
# angular.copy()
# angularJS深拷贝详解
# AngularJS API之copy深拷贝详解及实例
# 将会
# 好吧
# 则会
# 抛出
# 大家多多
# 返回值
# 象中
# 文档
# DOCTYPE
# lt
# xhtml
# html
# array
# Object
# optional
# utf
# charset
# equiv
# content
# Type
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
如何在阿里云购买域名并搭建网站?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何快速启动建站代理加盟业务?
Laravel如何处理和验证JSON类型的数据库字段
C#如何调用原生C++ COM对象详解
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Python面向对象测试方法_mock解析【教程】
香港服务器WordPress建站指南:SEO优化与高效部署策略
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel如何使用Telescope进行调试?(安装和使用教程)
Laravel如何实现API版本控制_Laravel版本化API设计方案
Laravel如何处理异常和错误?(Handler示例)
北京企业网站设计制作公司,北京铁路集团官方网站?
如何在宝塔面板中修改默认建站目录?
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
制作公司内部网站有哪些,内网如何建网站?
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
公司网站制作需要多少钱,找人做公司网站需要多少钱?
jQuery validate插件功能与用法详解
如何构建满足综合性能需求的优质建站方案?
在线制作视频的网站有哪些,电脑如何制作视频短片?
PHP 500报错的快速解决方法
网站制作壁纸教程视频,电脑壁纸网站?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
如何在阿里云域名上完成建站全流程?
南京网站制作费用,南京远驱官方网站?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
网站制作企业,网站的banner和导航栏是指什么?
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
如何在IIS服务器上快速部署高效网站?
Laravel如何处理CORS跨域请求?(配置示例)
如何快速搭建安全的FTP站点?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
JS弹性运动实现方法分析
Linux安全能力提升路径_长期防护思维说明【指导】
如何在Windows服务器上快速搭建网站?
php json中文编码为null的解决办法
Android使用GridView实现日历的简单功能
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
javascript中的try catch异常捕获机制用法分析
Swift中switch语句区间和元组模式匹配
香港服务器如何优化才能显著提升网站加载速度?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
公司网站制作价格怎么算,公司办个官网需要多少钱?
轻松掌握MySQL函数中的last_insert_id()
如何在宝塔面板创建新站点?
下一篇:国外独立站建站需要多少预算?
下一篇:国外独立站建站需要多少预算?

