js中的继承

本文探讨JavaScript中的继承方式,包括`Object.create`、ES6的`extends`语法糖以及`util.inherits`。通过分析`util.inherits`在Node.js源码中的实现,解释了构造函数和原型继承的原理,并指出`Object.create`的性能问题。最后,介绍了ES6`extends`的关键点和注意事项。
摘要由CSDN通过智能技术生成

前言

在js中, 对象就是键值对的集合.形如:{键1:值1,键2:值2}. 看起来很简单的样子, 但是提起笔想要在js中使用面向对象的方式来编程时, 就有点力不从心了.始终感觉对js的面向对象的继承理解不是很清楚.在红宝书中有很多的继承方式. 无奈理解不到位, 记也记不住. 最近看了gulp源码,发现它就是把Gulp写成了构造函数的形式.地址:Gulp

其中在Gulp内部调用了Undertaker.call(this), 又在Gulp外部写了util.inherits(Gulp, Undertaker).初看有点蒙啊(没错, 我就是这么菜).后来看了uitl模块的文的文档, 才知道util.inherits方法主要是用来:从一个构造函数中继承原型方法到另一个. 也就是说Gulp继承了Undertaker的原型.那么具体是如何继承的呢?不知道! 所以我就去github上面看了下node的一点源码.具体操作如下:

function inherits(ctor, superCtor) {
   

  if (ctor === undefined || ctor === null)
    throw new ERR_INVALID_ARG_TYPE('ctor', 'Function', ctor);

  if (superCtor === undefined || superCtor 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值