util.inherits(constructor, superConstructor)是一个实现对象间原型继承的函数。JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。 JavaScript 没有提供对象继承的语言级别特性,而是通过原型复制来实现的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
var util = require('util'); //定义基础对象Base function Base() { this.name = 'base'; this.base = 1991; this.sayHello = function() { console.log('Hello ' + this.name); }; } //定义Base原型方法showName Base.prototype.showName = function() { console.log(this.name); }; //定义Sub对象 function Sub() { this.name = 'sub'; } //Sub继承Base在原型中定义的函数 util.inherits(Sub, Base); var objBase = new Base(); objBase.showName(); objBase.sayHello(); console.log(objBase); var objSub = new Sub(); objSub.showName(); //objSub.sayHello(); Sub没有继承Base未在原型中定义的函数,会报错 console.log(objSub); |
1 2 3 4 5 6 |
输出: base Hello base { name: 'base', base: 1991, sayHello: [Function] } sub { name: 'sub' } |