zoukankan      html  css  js  c++  java
  • ES5 Objece.creat实现继承

    Object.create() 

      Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数,可以传一个null,第二个参数是对象的属性描述符,这个参数是可选的。

    例1:

    var A=function(){
      this.blood="lee";
    }
    A.prototype.setI=function(){
      console.log( this.blood)
    }
    
    var a=new A();
    var newa=Object.create(a);
    
    newa.setI()        //newa拥有了A的原型方法

    例2:

    function Car (desc) {
        this.desc = desc;
        this.color = "red";
    }
     
    Car.prototype = {
        getInfo: function() {
          return 'A ' + this.color + ' ' + this.desc + '.';
        }
    };
    
    var car =  Object.create(Car.prototype);
    car.color = "blue";     //改写
    console.log(car.getInfo());    //结果为:A blue undefined.

     在不支持Object.create方法的浏览器中,则可以使用以下代码

    Object.create = Object.create || function(obj){
      var F = function(){};
      F.prototype = obj;
    
      return new F();
    }
  • 相关阅读:
    C语言程序设计第一次作业
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
  • 原文地址:https://www.cnblogs.com/change-oneself/p/5407161.html
Copyright © 2011-2022 走看看