• Js如何实现继承?


    构造函数绑定:使用 call 或 apply 方法,将父对象的构造函数绑定在子对象上

    function Cat(name,color){
      Animal.apply(this, arguments);
      this.name = name;
      this.color = color;
    }
    

    实例继承:将子对象的 prototype 指向父对象的一个实例

    Cat.prototype = new Animal();
    Cat.prototype.constructor = Cat;
    

    拷贝继承:如果把父对象的所有属性和方法,拷贝进子对象

    function extend(Child, Parent) {
       var p = Parent.prototype;
       var c = Child.prototype;
       for (var i in p) {
          c[i] = p[i];
       }
       c.uber = p;
    }
    

    原型继承:将子对象的 prototype 指向父对象的 prototype

    function extend(Child, Parent) {
        var F = function(){};
         F.prototype = Parent.prototype;
         Child.prototype = new F();
         Child.prototype.constructor = Child;
         Child.uber = Parent.prototype;
    }
    

    ES6 语法糖 extends继承

    class ColorPoint extends Point {
        constructor(x, y, color) {
            super(x, y); // 调用父类的constructor(x, y)
            this.color = color;
        }
        toString() {
            return this.color + ' ' + super.toString(); // 调用父类的toString()
        }
    }

    想要彻底弄明白原型和继承的话:
    https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s%3F__biz%3DMzI5MjU0Mjk5MA%3D%3D%26mid%3D2247483768%26idx%3D1%26sn%3D4579b7bd22420d18009505a5a7454a9d%26chksm%3Dec7e8e19db09070f8d529cb6a3f9bb425c20ac3bd4d936f4eb9e918facbe3d7e6eecdd719c4c%26token%3D816776520%26lang%3Dzh_CN%23rd
  • 相关阅读:
    elasticsearch 6.x.x 获取客户端方法
    struts2+spring 配置404和500错误页面
    linux 部署redis集群 碰到的坑
    Linux下安装redis
    struts加载spring
    有关struts中DispatchAction的用法小结
    spring AOP原理
    struts2.0的工作原理?
    Spring MVC的实现原理
    spring 的单例模式
  • 原文地址:https://www.cnblogs.com/zhilu/p/13854686.html
Copyright © 2020-2023  润新知