AngularJS API之extend扩展对象

angular.extend(dst,src),在我实验的1.2.16版本上是支持深拷贝的。但是最新的API显示,这个方法是不支持深拷贝的。 另外,第二个参数src支持多个对象。

第一种使用方式

var user3 = angular.extend(user1,user2);

会把user2的所有属性都拷贝到user1上,并且把user1复制给user3

第二种使用方式

var user3 = angular.extend({},user1,user2);

这种使用方式,会保留原始对象,把user1与user2进行整合,在复制给user3.

样例代码

<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="myApp">
    <div ng-controller="myCtrl">
        {{ user1 }}
        {{ user2 }}
        {{ user3 }}

        {{ user4 }}
        {{ user5 }}
    </div>
    <script type="text/javascript">
    angular.module("myApp",[])
    .controller("myCtrl",function($scope){
        var user1 = {"name":"xingoo"};
        var user2 = {"age":30};

        var user3 = angular.extend(user1,user2);
        // var user3 = angular.extend({},user1,user2);

        $scope.user1 = user1;
        $scope.user2 = user2;
        $scope.user3 = user3;


        var user4 = new Object();
        user4.name = "xingoo";
        user4.age = 30;
        user4.mother = user1;
        
        var user5 = new Object();
        angular.extend(user5,user4);

        $scope.user4 = user4;
        $scope.user5 = user5;
    });
    </script>
</body>
</html>-

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端架构与工程

【译】《Understanding ECMAScript6》- 第八章-Module

目录 模块是什么 使用基础 接口标识符重命名 缺省接口 Re-exporting 非绑定import 总结 JavaScript令人困惑并且易引发错误的特性之一...

2276
来自专栏烙馅饼喽的技术分享

用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- CustomYieldInstruction 自定义中断指令

ActionScript3脚本引擎为了方便热更新逻辑开发,提供的从脚本继承Unity类库功能在一些情况下可以提供开发的便利。 这次来建立一个示例,演示一下如何在...

3519
来自专栏老马说编程

(65) 线程的基本概念 / 计算机程序的思维逻辑

在之前的章节中,我们都是假设程序中只有一条执行流,程序从main方法的第一条语句逐条执行直到结束。从本节开始,我们讨论并发,在程序中创建线程来启动多条执行流,并...

2197
来自专栏haifeiWu与他朋友们的专栏

Redis协议规范(译文)

Redis客户端使用名为RESP(Redis序列化协议)的协议与Redis服务器进行通信。 虽然该协议是专为Redis设计的,但它可以用于其他CS软件项目的通讯...

1313
来自专栏FreeBuf

FlaskJinja2 开发中遇到的的服务端注入问题研究 II

0x00. 前言 本篇文章是 《Flask Jinja2 开发中遇到的的服务端注入问题研究》<点击阅读原文查看链接>续篇,我们继续研究 Flask Jinja...

2796
来自专栏IT笔记

Linux下安装Redis3

下载 下载地址 http://redis.io/download Linux 下执行 wget http://download.redis.io/relea...

3525
来自专栏noteless

-1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),

java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁  sleep()和wait()方法...

1064
来自专栏海天一树

小朋友学Java(12):包

包(package)是Java语言提供的一种区别类名字命名空间的机制,它是类的一种文件组织和管理方式、是一组功能相似或相关的类或接口的集合。Java packa...

2856
来自专栏陈纪庚

angularjs directive学习心得

transclude有三个选项,true, false, 和object.如果不显示指明的话,默认为false. 当为false的时候,则那个directiv...

1181
来自专栏java 成神之路

JVM 类加载机制深入浅出

26511

扫码关注云+社区