[js]js中原型的继承

js继承01

思路:

单例/工厂/构造函数--演进到原型
搞清原型结构

原型继承
    模拟系统原型继承
    实现自己的继承
    观察原型继承特点
- 知识前提
    类属于function类型, 天生有prototype属性,指向一个对象(constructor[类本身]+__prototype)
    实例属于object类型, 天生有__proto__属性,指向所属类的prototype
    
    function A() {
        this.name = 'maotai'          //name属于类A的私有属性
    }
    A.prototype.show = function () {  //方法为了实例间公用,都放在prototype上.
        console.log(this);
    };


- 原型继承: 将B的prototype指向new A.

- 模拟系统原型继承
    function myObject() {

    };

    function myEventTarget() {

    };

    myEventTarget.prototype = new myObject;
    myEventTarget.prototype.addListener = function () {

    };

    function myNode() {

    }

    myNode.prototype = new myEventTarget;
    myNode.prototype.createElement = function () {

    };

    var n = new myNode;
    console.dir(n);
1,原型链继承特点
    1,将B将A的私有属性继承了, 当作了B的共有属性
    2,原型继承是索引的执行, 并非属性的添加. 和父子之间基因继承不一样, 病不是把A类的属性和方法克隆一份给B,而是让B和A之间增加原型链的链接.
- 实现自己的原型继承: 下面有内存图

    function A() {
        this.name = 'maotai'
    }

    function B() {
        this.name = 'maomao'
    }

    B.prototype = new A;

    var n = new B;
    console.dir(n);

猜你喜欢

转载自www.cnblogs.com/iiiiiher/p/8982760.html