前端JS手写一个继承函数

// 手写一个继承函数,允许一个构造函数继承另一个构造函数的属性和方法
// 声明一个继承函数,传入一个子类构造函数和一个父类构造函数,实现子类继承父类的属性和方法
function inherit(childConstructor, parentConstructor) {
    // 使用Object.create()创建一个以父构造函数原型为原型的对象
    childConstructor.prototype = Object.create(parentConstructor.prototype)
    // 将子构造函数的原型的constructor属性指向子构造函数本身
    childConstructor.prototype.constructor = childConstructor
}

// 实例用法
function Parent(name) {
    this.name = name
}
Parent.prototype.sayHello = function() {
    console.log('Hello, my name is ' + this.name);
}

function Child(name, age) {
    Parent.call(this, name)  //调用父构造函数以继承属性
    this.age = age
}

// 使用inherit实现继承
inherit(Child, Parent)

// 创建一个子类实例并调用父类的方法
const child = new Child('Alice', 10)
child.sayHello() // 输出:Hello, my name is Alice
console.log(child.age); //输出10

帮助各位前端学习者更容易理解继承的概念!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼鱼不让我编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值