zoukankan      html  css  js  c++  java
  • JavaScript继承

    1、传统继承形式 ——>原型链继承

      缺陷:过多的继承了没用的属性

    function SuperType() {
         this.property = true;
    }
    SuperType.prototype.getSuperValue
    = function() { return this.property; } function SubType () { this.property = false; ) //继承superType SubType.prototype = new SuperType(); //添加新的方法 SubType.prototype.getSubValue = function() { return this.property; } //重写超类中的方法
    SubType.prototype.getSuperValue = function() {
      return false;
    }
    var instance = new SubType(); console.log(instance.getSuperValue) //false

    2、借用构造函数

      不足:不能继承借用构造函数的原型;每次构造函数都多走一个函数

    function SuperType(name, age) {
      this.name = name;
      this.age = age;
    }
    function SubType(name, age, gender){
      SuperType.call(this, name, age);
      //SuperType.apply(this, [name, age]);
      this.gender = gender;
    }
    var instance = new SubType("huang", 18, "male");
    
    console.log(instance.name)  //"huang"
    console.log(instance.gender)  //"male"

    3、圣杯模式

    var inherit = (function() {
      var F = function() {};
      return function(Target, Origin) {
        F.prototype = Origin.prototype;
        Target.prototype = new F();
        Target.prototype.constructor = target;
        Target.prototype.uber = Origin.prototype;
      }
    }())

    ***方法

     1、obj.hasOwnProperty(property)   判断对象是否有某个属性

     2、obj instanceof super  判断obj的原型链上是否存在super

     3、Object.create(原型)

        var obj = Object.create(null)  //这样构造的对象原型链为空

  • 相关阅读:
    【转载】zookeeper数据模型
    java.util.logging使用笔记2
    spark提交应用的方法(spark-submit)
    spark集群模式概述
    [spark]spark 编程教程
    [spark]Spark Streaming教程
    使用github pages创建博客
    spark 编程教程
    Spark编程指南V1.4.0(翻译)
    mysql基本操作
  • 原文地址:https://www.cnblogs.com/lianchenxi/p/9736558.html
Copyright © 2011-2022 走看看