`
zhangyaochun
  • 浏览: 2613809 次
  • 性别: 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;
}
 
分享到:
评论

相关推荐

    浅拷贝深拷贝之jQuery中的$.extend分析

    这篇博客“浅拷贝深拷贝之jQuery中的$.extend分析”深入探讨了`$.extend`在浅拷贝和深拷贝场景下的工作原理,这对于理解JavaScript对象的复制机制至关重要。 浅拷贝是指创建一个新对象,然后将源对象的引用属性复制...

    【JavaScript源代码】详解jQuery的拷贝对象.docx

    // 如果拷贝对象targett里面属性和被拷贝对象objrr里面属性有相同的,则objrr里面属性值会覆盖掉targett里面属性值 ``` 在这个例子中,`targett` 中的 `id` 属性被 `objrr` 中的 `id` 属性覆盖。 #### 四、深拷贝...

    jQuery的$.extend 浅拷贝与深拷贝

    jQuery的$.extend方法是一个非常强大的工具,它提供对象合并的功能,这在处理对象属性时尤其有用。它支持浅拷贝和深拷贝两种方式,这是在进行数据复制时必须要明确区分的两种不同操作。 浅拷贝是创建一个新对象,...

    underscore.extend与$.extend实例比较分析

    这两个方法允许开发者合并一个或多个对象的属性到目标对象中,实现对象间的属性拷贝。本文将深入探讨 `underscore.extend` 与 `$.extend` 的异同以及实例分析。 首先,`underscore` 是一个JavaScript实用库,提供了...

    Extend

    2. **浅拷贝与深拷贝**: `Object.assign()`进行的是浅拷贝,这意味着如果源对象的属性是一个引用类型(如数组或对象),则目标对象会共享这个引用。对于深拷贝,可以使用JSON方法或递归函数。 3. **构造函数和原型...

    jQuery.extend

    jQuery.extend是jQuery库中的一个非常重要的方法,用于合并两个或更多的对象属性到一个目标对象中。这个功能在开发过程中非常实用,尤其是在处理配置选项、扩展插件功能或者进行对象拷贝时。本篇文章将深入探讨...

    jQuery.extend 函数详解

    `jQuery.extend`允许省略`destination`参数,此时只能有一个源对象,并且该对象的属性会被合并到调用`extend`方法的对象中。 **1. 合并到jQuery全局对象** ```javascript $.extend({ hello: function() { alert...

    jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析

    浅拷贝只是创建一个新对象,它的属性是指向原对象属性的引用。这意味着,如果原对象的属性是一个对象,那么新对象的相应属性也将指向同一个对象。因此,修改新对象的属性会影响到原对象。 深拷贝则会创建一个全新的...

    深入剖析javascript中的深拷贝和浅拷贝1

    简单来说,浅拷贝是创建了一个新对象,但它的属性仍然是对原对象属性的引用,而深拷贝则创建了一个全新的对象,其属性是原始对象属性的完整副本。 1. **基本类型与引用类型** JavaScript中有两种主要的数据类型:...

    前端开源库-smart-extend

    1. **浅拷贝**:仅复制对象的顶层属性,如果某个属性值是对象,新对象将共享这个引用。`smart-extend`的浅拷贝功能允许开发者快速创建一个新的对象,但不复制嵌套的对象或数组的引用。 2. **深拷贝**:不仅复制对象...

    浅谈jQuery中的$.extend方法来扩展JSON对象

    在浅拷贝模式下,`$.extend`只复制对象的顶层属性,而不改变或创建新的引用。例如,在例一中: ```javascript var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name:...

    前端开源库-aimee-extend

    1. **浅拷贝(Shallow Copy)**:这种拷贝方式只复制对象的顶层属性,不涉及深层嵌套的对象。在处理简单的对象时,浅拷贝能快速创建一个与原对象类似的新对象,但对原对象的修改不会影响到新对象。 2. **深拷贝...

    jQuery.extend和jQuery.fn.extend的区别

    在jQuery的API中,`jQuery.extend`和`jQuery.fn.extend`是两个重要的方法,它们用于合并对象属性,但作用范围和用途有所不同。本文将深入探讨这两个方法的差异,并通过实例解析它们的工作原理。 首先,`jQuery....

    分析了一下JQuery中的extend方法实现原理

    这个方法在开发中经常用来创建配置对象或者进行对象间的属性拷贝。让我们深入解析一下`jQuery.extend`的实现原理。 首先,`jQuery.extend`接受一个可变数量的参数,第一个参数可以是一个布尔值,表示是否进行深度...

    jQuery实现简单复制json对象和json对象集合操作示例.docx

    1. **浅拷贝**:当仅传递两个对象作为参数时,`jQuery.extend(target, source)`,`target` 对象将接收 `source` 的属性,但不会改变原始对象。如果 `source` 和 `target` 有相同的属性,`source` 的属性值会覆盖 `...

    js对象浅拷贝和深拷贝详解

    浅拷贝指的是创建一个新对象,然后将原始对象的属性值复制到新对象中,但如果属性值是引用类型(如数组或对象),则浅拷贝只会复制引用地址,而不是对象本身。深拷贝则不同,它不仅复制对象的属性值,还会递归复制...

Global site tag (gtag.js) - Google Analytics