zoukankan      html  css  js  c++  java
  • JavaScript 复制对象

    首先,为了创建一个对象完全相同的拷贝,需要确保两件事情: 

      1. 拷贝必须具有与原对象相同的原型

      2. 拷贝必须具有与原对象相同的属性和特性。

    function copyObject (orig) {
        //1. 具有相同的原型
       var copy  = Object.create(Object.getPrototypeOf(orig));  
    
        // 2. 具有相同的属性和特性
        copyOwnPropertiesFrom(copy, orig);     
    
        return copy;  
    }
    
    //属性复制
    
    function copyOwnPropertiesFrom(target, source) {
       Object.getOwnPropertyNames(source)   //(1)
        . forEach(function (propKey) {   //(2)
                 var desc = Object.getOwnPropertyDescriptor(source, propKey); //(3)
                 Object.defineProperty(target, propKey, desc); //(4)
        });
        return target;
    }
    

      步骤如下:

    (1) 获得 source 所有自由属性的数组。

    (2) 遍历这些键。

    (3) 获取属性描述符

    (4) 使用属性描述符创建 target 的自有属性

  • 相关阅读:
    VSCode
    git CAPTCHA required
    css :active
    节流 防抖
    判断数据类型
    http协议的三次握手和四次挥手
    http协议
    发布网站相关信息
    获取任意两个数之间多个随机数的方法;
    数组中的12个方法;
  • 原文地址:https://www.cnblogs.com/jiaxinjie/p/8027855.html
Copyright © 2011-2022 走看看