zoukankan      html  css  js  c++  java
  • 【JavaScript】类继承(对象冒充)和原型继承__深入理解原型和原型链

    JavaScript里的继承方式在很多书上分了很多类型和实现方式,大体上就是两种:类继承(对象冒充)和原型继承。

    类继承(对象冒充):在函数内部定义自身的属性的方法,子类继承时,用call或apply实现对象冒充,把类型定义的东西都复制过来,这样的继承子类与父类并没有多少关联,不互相影响,有利于保护自身的一些私有属性。

    原型继承:每个函数都有自己的原型(prototype)属性,这个属性是在生成实例对象时自动创建的。它本身又是一个对象,拥有能够在实例间共享的属性和方法。而实例本身的属性和方法,则包含在构造函数中。换句话说,构造函数内部的属性和方法,在经过实例化后都成为了本地的属性和方法,而原型(prototype)中的属性和方法在实例中只是一种引用,因此能够被多个实例共享。  

    两者各有利弊,实际应用中多是两者混合应用。

    以下就通过混合两者的示例去理解:

        function A(x) {
            this.x = x;
        }
        A.prototype.a = "a";
        function B(x, y) {
            this.y = y;
            A.call(this,x);//类继承
        }
        B.prototype.b1 = function() {
            alert("b1");
        }
        B.prototype = new A();//原型继承
        B.prototype.b2 = function() {
            alert("b2");
        }
        B.prototype.constructor = B;
        var obj = new B(1, 3);
  • 相关阅读:
    数据挖掘常用算法
    helloworld
    sqlserver 变量级基本语法
    存储过程
    动态代理jdk 和cglib
    创建表添加约束
    sqlserver 子查询
    创建数据库
    javaScript实现同意等待——心得
    JavaScript关于不要复制黏贴代码的心得
  • 原文地址:https://www.cnblogs.com/fly4j/p/4520110.html
Copyright © 2011-2022 走看看