zoukankan      html  css  js  c++  java
  • javaScript 对象继承

    7.继承

    7.1原型链

    function superType(){

                                this.property = true;

                                this. superA = 12;

                         }

    superType.prototype. superA  = 23;

                         superType.prototype.getSuperValue = function(){

                                return this.property;

                         }

                         function subType(){

                                this.subproperty

                         }

                         subType.prototype = new superType();  // subType的原型被重新写,此刻super中的属性都变成subType原型中属性,那么superType的属性值被子类型的实例共享

                         subType.prototype.getSubValue = function(){

                                return this.subproperty;

                         }

                         var  a = new subType();

                         alert(a.superA) ; //12

                         alert(a.getSuperValue);  //true

    这是一个原型链的继承。subType的原型被重新写,所以subype的实例就要写在他的后面。子类型可以重写超类型中的方法,也可以添加超类型中不存在的方法,但是都要放在重写原型的语句之后。

    在通过原型链实现继承的情况下,搜索过程就得沿着原型继续向上:先搜索子类型的实例,再搜索子类型的原型,再搜索超类型的实例,最后搜索超类型的原型。

    缺点:在创建子类型的实例情况下,不能向超类型的构造函数中传递参数;超类型中属性值被子类型实例共享。

    7.2 借用构造函数

    function SuperType(name){

                                this.name = name;

                         }

                         SuperType.prototype.sex = 1;

                         function SubType(name){

                                SuperType.call(this,name);

                                this.age = 29;

                         }

                         var instance = new SubType("tom");

                         alert(instance.name); //tom

                         alert(instance.sex);  //undefined

                  缺点:在超类型的原型中定义的方法和属性对于子类型都是不可见的。

    7.3 组合继承

    将原型链和借用构造函数组合到一块。使用原型链实现对原型属性和方法的继承,通过借用构造函数来实现对实例属性的继承。

  • 相关阅读:
    VS2015 C#取消最大化按钮,设置鼠标不可调整窗体大小
    C++调用C#编写的DLL【转】
    C#封装成DLL,并在C#中调用
    ubuntu永久修改主机名
    Anaconda3的安装和汉化
    windows下面安装Python和pip教程
    pip install bs4安装失败
    Sublime text 3中文汉化教程
    Vmware安装ubuntu详细教程
    Sublime text3修改tab键为缩进为四个空格
  • 原文地址:https://www.cnblogs.com/qduanlu/p/2818115.html
Copyright © 2011-2022 走看看