`
zhangyaochun
  • 浏览: 2575566 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

对象属性的拷贝extend

阅读更多

很多时候我们在处理对象的时候都在做一件同样的事情----将某一个源对象的所有属性拷贝到一个目标对象上

 

先看看prototype的做法

 

 

Object.extend = function(destination,source){
     for(var pro in source){
          destination[pro] = source[pro];
     }
     return destination;
}
 

 

 

 

下面我们参照tangram的方式:

 

  • 拷贝的是源对象自己的属性,不拷贝prototype的成员
  • 在拷贝过程中,目标对象上与源对象上key相同的对应值会被覆盖

/*
@function
@param target  -----目标对象
@param source -----源对象
*/
ZYC.object.extend = function(target,source){
   for(var p in source){
      if(source.hasOwnProperty(p)){
          //拷贝自身属性
          target[p] = source[p];
      }
   }
   return target;
}
 
分享到:
评论

相关推荐

    AngularJS extend用法详解及实例代码

     angular.extend:依次将第二个参数及后续的参数的第一层属性(不管是简单属性还是对象)拷贝赋给第一个参数的第一层属性,即如果是对象,则是引用的是同一个对象,并返回第一个参数对象。  实例一:var r = ...

    基于对象合并功能的实现示例

    本文参考了jQuery的extend方法的源码,将自己实现对象合并,即将多个对象的属性复制到目标对象上,若有相同的属性,后面的对象覆盖前面的。 浅拷贝的方式实现对象合并 之前的一篇博文 有专门介绍对象和数组的深浅...

    JavaScript mixin实现多继承的方法详解

    mixin简单通俗的讲就是把一个对象的方法和属性拷贝到另一个对象上,注意这个继承还是有区别的。js是一种只支持单继承的语言,毕竟一个对象只有一个原型,如果想实现多继承,那就简单暴力的把需要继承的父类的所有...

    jQuery插件开发汇总

    2、target 一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数则将扩展jQuery的命名空间,这对于插件开发者希望向 jQuery 中添加新函数时是很有用的。 3、object1 一个对象,它...

    jQuery实现腾讯信用界面(自制刻度尺)样式

     文档中给的解释是:jQuery.extend()函数主要是用于将一个或多个对象的内容合并到目标对象上,该函数可以将一个或多个对象的成员属性和方法复制到指定的对象上。  extend也是在我们写插件时常用的方法, 1、扩展...

    JAVA基础课程讲义

    属性(field,或者叫成员变量) 59 引用类型 60 类的方法 60 对象的创建和使用 60 构造器(或者叫做构造方法,constructor) 60 垃圾回收机制(Garbage Collection) 63 方法的重载(overload),构造方法的重载 63 this...

    C++MFC教程

    而各种对象都拥有各种属性,下面分别讲述各种GUI对象和拥有的属性。 字体对象CFont用于输出文字时选用不同风格和大小的字体。可选择的风格包括:是否为斜体,是否为粗体,字体名称,是否有下划线等。颜色和背景色不...

    WTL 9.1 5270 ReadMe 中文 汉化 中英文对照版 01d

    WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...

    WTL 9.1 5270 Beta 中文 汉化 中英文对照版

    WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...

    arcgis工具

    实用工具 TASK 任务栏 Extend/Trim feature 剪切所得内容与你画线的方向有关。 2. 自动捕捉跟踪工具 点击Editor工具栏中Snapping来打开Snapping Environment对话框 捕捉设置中有3个选项, vertex edge end 分别是...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。 (1)Linux可以识别的文件系统 ◆ Windows 95/98常用的FAT 32文件系统:vfat ;...

Global site tag (gtag.js) - Google Analytics