zoukankan      html  css  js  c++  java
  • javascript继承(原型链prototype chaining)

    关键是把 ClassB 的 prototype 属性设置成 ClassA 的实例。

    function ClassB(color){
        this.color = color;
        this.sayColor = function(){
            console.log(this.color);    
        }
    }
    
    
    
    function ClassA(name){
        this.name = name;
        this.sayName = function(){
            console.log(this.name)
        }
    }
    
    //这一句,就让A继承了B的所有属性和方法 ClassA.prototype
    = new ClassB(); var oA = new ClassA(); oA.color = "red"; oA.sayColor();

    这里面的关系是这样的:

    实例出来的A,可以继承ClassA.prototype这个对象里面的所有属性和方法

    而现在ClassA.prototype指向了ClassB的实例

    所以:实例出来的A,就可以有ClassB的实例的所有方法的属性。

    而ClassB的实例,又可以有ClassB.prototype的所有属性和方法,

    所以:实例出来的A,也可以有ClassB.prototype的所有属性和方法

     

    就像链条一样连接起来,所以叫原型链。

    原本:

    经过 ClassA.prototype = new ClassB();

     

  • 相关阅读:
    poj1837 Balance

    字符流
    字节流
    File类
    this和static
    异常
    接口
    抽象类
    多态
  • 原文地址:https://www.cnblogs.com/lufy/p/2521307.html
Copyright © 2011-2022 走看看