JS面向对象的继承/12.28

//JS的继承方式一:对象冒充
    //特点:对象冒充可以支持多重继承。简单来说,一个类可以继承多个超类
    //多种继承,后面的类优先级更高,也就是它会覆盖靠前类的同名方法
    function ClassA(sName) {
      this.name = sName;
      this.sayHello = function () {
        alert('hello,My name is:' + this.name);
      }
    }
    function ClassB(sName, sAge) {
      this.nMethod = ClassA;
      this.nMethod(sName);
      delete this.nMethod;
      this.age = sAge;
      this.sayAge = function () {
        alert('age:' + this.age);
      }
    }
    window.onload = function () {
      var a = new ClassA('rose');
      var b=new ClassB('JACK',15);
      a.sayHello();
      b.sayHello();
      b.sayAge();
    }
//JS的继承方式二:原型链
    //特点:无法使用带参数的构造函数
    //JS的继承方式三:混合方式
    //创建类的最好方式是用构造函数定义属性,用原型定义方法
    window.onload = function () {
      var objA = new ClassA();
      var objB = new ClassB();
      objA.color = "blue";
      objB.color = "red";
      objB.name = "John";
      objA.sayColor();
      objB.sayColor();
      objB.sayName();
    }

    function ClassA() {
    }
    ClassA.prototype.color = "blue";
    ClassA.prototype.sayColor = function () {
      alert(this.color);
    };
    //
    /* function ClassB(sColor, sName) {
      ClassA.call(this, sColor);
      this.name = sName;
    } */
    function ClassB() {
    }
    ClassB.prototype = new ClassA();
    ClassB.prototype.name = "";
    ClassB.prototype.sayName = function () {
      alert(this.name);
    };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值