前言
在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