zoukankan      html  css  js  c++  java
  • as3 浅复制 深复制

    基元数据类型:boolean、int、uint、number、string

    两种复杂数据类型:array、object

    当数组元素全部是基元数据类型时,即全部是值类型时,是没有浅复制和深复制的区别。

    当数组元素全部是复杂数据类型,即引用类型时,复制有2种选择,浅复制和深复制。

    当数组元素部分是基元数据,部分是复杂数据时,这时候,对于基元数据类型的元素,采用哪种复制方式效果都一样。

    只有对于复杂数据元素,才有浅复制和深复制的区别。

    浅复制:调用原数组的slice或concat方法,不传任何参数。浅复制生成的新数据,各个元素存放的只是引用。2个数组中

    相同位置的元素存放的引用指向同一个对象,如果对该元素操作,等于就是操作引用指向的对象。如果对象状态发生变化,

    也会影响到另一个数组中对应位置的元素。

    深复制:生成的新数组,其所有元素都是真正的原数据元素的备份,这个时候相同位置的元素,存放的是不同的引用,指向不同的对象。但是这2个对象的状态是完全一致的。

    **==运算符,对于引用类型,判断的是变量持有对象的引用是否相同,而不是内容相同。对于值类型,是通过value来判断的。

    操作数组中的每个元素:

    foreach (遍历操作): 操作数组中的每一个元素,回调函数不需要返回值。

    filter(过滤):将符合条件的元素提出来,构成一个新的数组返回。回调函数返回单个新数组元素。

    map(映射器):根据回调函数操作数组每个元素,并利用回调函数的结果生成新的数组。回调函数返回单个新数组元素。

    some(有一个满足则为真):只要有一个元素能让回调函数返回true,则some()返回true,否则为false.回调函数返回单个元素比较结果。

    every(全员满足才为真):必须所有元素都让回调函数返回true,every()才返回true,否则为false.回调函数返回单个元素比较结果。

  • 相关阅读:
    Delegates in C#
    Continues Integration
    单例模式(Singleton Pattern)
    敏捷开发中编写高质量Java代码
    How to debug your application (http protocol) using Fiddler
    Java EE核心框架实战(1)
    03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例
    04 Spring:01.Spring框架简介&&02.程序间耦合&&03.Spring的 IOC 和 DI&&08.面向切面编程 AOP&&10.Spring中事务控制
    黑马IDEA版javaweb_22MySQL
    第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结【第二天】
  • 原文地址:https://www.cnblogs.com/axyz/p/2231472.html
Copyright © 2011-2022 走看看