JavaScript面向对象(二)继承

9 篇文章 0 订阅
7 篇文章 0 订阅

继续上一篇,JS中的继承,JS中所有对象都是基于Object的,所以基本说是平等的。
准确来说JS中的类就是对象,继承实际上就是把所谓父类的原型给了子类

一、原型链继承

function Person(name,age) {
  this.name=name;
  this.age=age;
  word="你好";
  //普通方法,使用对象调用
  this.hello=function () {
    console.log("hello "+word+"我的名字是"+name);
  }
}
//此时创建的是类方法,只可以通过类名调用
Person.show=function () {
  console.log("Show.....")
};
//通过原型链创建的普通方法,使用对象调用
Person.prototype.ha=function () {
  console.log("Ha.....");
};

//构造器构造一个对象
function Boy(id) {
  //Person.call(name,this.age);
  this.id=id;
}

//继承
Boy.prototype=new Person("sari",10);

//创建方法,注意要写在继承之后,否则报错TypeError: boy.disPlay is not a function
Boy.prototype.disPlay=function(){
  console.log(this.name+this.age+this.id)
};
//创建对象
boy=new Boy(3);

boy.ha();
boy.hello();
console.log(boy.age);
console.log(boy.id);
boy.disPlay();
Ha.....
hello 你好我的名字是sari
10
3
sari103

二、ES6继承

ES6中可以使用extends关键字继承,super关键字等

class Person {
  constructor(names,age,word){
    this.names=names;
    this.age=age;
    console.log("name:"+names+" age:"+age+" word:"+this.word)
  }
  disPlay(){
    console.log("name:"+this.names+" age:"+this.age+" word:"+this.word)
  }
}
Person.prototype.word="ES";

//以上代码为一个父类

//子类继承使用extends

class Girl extends Person{
  constructor(names,age,word){
    super(names,age);
  }
}

g1=new Girl("111",1,11);
console.log(g1.word);
name:111 age:1 word:ES
ES

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值