利用原型对象继承方法

本文主要探讨了JavaScript中两种继承方式:一是通过构造函数继承父类型属性,利用call()方法改变this指向;二是利用原型对象继承父类型的方法,将共有的属性置于构造函数,共有的方法置于原型对象上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、用构造函数继承父类型属性

可以通过构造函数+原型对象实现继承,称为组合继承
核心原理:通过call()把父类的this指向子类的this,这样就可以实现子类型继承父类型的属性

1、父构造函数

function Father(uname,age){
//this指向父构造函数的对象实例
    this.uname=uname;
    this.age=age;
  }

2、子构造函数

function Son(uname,age){
  //this指向子构造函数的对象实例
  Father.call(this,uname,age);//把父的this改成了子的this
  this.sex=sex;
}
var son=new Son("小李",18,};//既继承了父类的属性又可以添加自身属性
console.log(son);

二、利用原型对象继承父类型方法

共有的属性写到构造函数里
共有的方法写到原型对象上

function Father(uname,age){
//this指向父构造函数的对象实例
    this.uname=uname;
    this.age=age;
  }
  Father.prototype.money=function(){
    console.log("一百元";
  }
function Son(uname,age){
 Father.call(this,uname,age);
 this.sex=sex;
 }
 //son.prototype=father.prototype;这样修改会有问题 如果修改了子原型对象 父原型对象也会一起变化
 Son.prototype=new Father();
 //如果利用对象的形式修改了原型对象,要利用constructor指回原来的构造函数
 Son.prototype.constructor=Son;
 //给子构造函数添加专门的方法
 Son.prototype.exam=function(){
 console.log("要考试");
 }
 var son=new Son("小李","18","男"};
 console.log(son);
 console.log(Father.prototype);//父构造函数里也会有exam方法??
 console.log(Son.prototype.constructor);//Father

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值