zoukankan      html  css  js  c++  java
  • 关于Object.create方法

    ES6最新的Object.create语法是 创造一个对象 可以传参,参数为一个对象,得到的结果是一个克隆的对象,

    实际上 这是基于原型的克隆 分析如下:

      

    var a={b:1};
    var a1 = Object.create(a);
    console.log(a1);

      在控制台上我们得到这样的结果:

      

     也就是说 a1本身是没有b属性的,为了验证这一点,我们可以采用 hasOWnProperty来检验(hasOwnProperty只会在当前对象中查找属性,不会在其原型上查找属性)

    console.log(a1.hasOwnProperty('b')); //false
    

      此时打印 a1.b却能够取到值 1,说明a1的b属性是在其原型链a上找到的;

    因此我们可以假设 Object.create是这样的一个函数(为了区分写成creates)

       

    Object.prototype.creates = function(oldobj){
    let newobj = {};
     newobj.__proto__ = oldobj;
      return newobj;
    }
    

      尝试:

      

    Object.prototype.creates = function(oldobj){
    let newobj = {};
     newobj.__proto__ = oldobj;
      return newobj;
    }
    var a={b:1};
    var a1=Object.creates(a);
    console.log(a1)
    

     结果:

  • 相关阅读:
    记一次mqtt压测过程
    记项目过程中代码分支管理
    测试流程
    Docker与K8s的区别
    Mysql之pymysql
    Mysql常用简介
    JQuery
    CSS
    红外线接受程序 理解
    数码管流水灯升级程序理解
  • 原文地址:https://www.cnblogs.com/tony-stark/p/11628792.html
Copyright © 2011-2022 走看看