zoukankan      html  css  js  c++  java
  • JS 的 继承

    JS 早期没有继承的原因,可以在这里找到. 实现 继承有多种方式,下面一一列举

    1,利用class

    ES 6推出 class 后,我们可以使用 extends 来实现继承

    class Polygon {
      constructor(height, width) {
        this.name = 'Polygon';
        this.height = height;
        this.width = width;
      }
    }
    
    class Square extends Polygon {
      constructor(length) {
        super(length, length);
        this.name = 'Square';
      }
    }

    2,利用call或apply方法

    // Animal原型上的方法不会被Cat继承
    function Animal(){
        
    }
    function Cat(name,color){
      Animal.apply(this);
      this.name = name;
    }

    3,利用prototype

    function Animal(){}
    Animal.prototype.run = function(){
        console.log('run');
    }
    function Cat(name,color){
      this.name = name;
    }
    Cat.prototype = new Animal();
    Cat.prototype.constuctor = Cat();
    var cat = new Cat('ami','red')
    cat.run()

    4,拷贝prototype继承

        function _extend(Child, Parent) {
    
        var p = Parent.prototype;
    
        var c = Child.prototype;
    
        for (var i in p) {
    
          c[i] = p[i];
    
          }
    
        c.__super = p;
    
      }
  • 相关阅读:
    AS3.0纯代码编写的两款loading效果
    AS3.0 Vector的运用
    java 垃圾回收总结(1)
    as3垃圾回收机制
    AS3.0 效率优化
    数组去重的方法
    javascript 的垃圾回收机制讲一下
    浅拷贝和深拷贝
    判断 js 类型的方式
    前端安全问题?
  • 原文地址:https://www.cnblogs.com/xiaxiaodong/p/8280698.html
Copyright © 2011-2022 走看看