node.js继承

person.js

module.exports = function(){
  this.name = "person";
  this.sleep = function(){
    console.log("sleep in the night");
  }
  this.eat = function(){
    console.log('eat food');
  }
}

 

student.js

var util = require("util");
var Person = require('./person');

//定义student类
function Student(){
  Person.call(this);
}

//将Student继承Person
util.inherits(Student,Person);

//重写study方法
Student.prototype.study = function(){
  console.log("I am learning");
}

//暴露Student类
module.exports = Student;

 

testInherits.js

var Person = require('./person');
var Student = require('./student');

var personObj = new Person();
var studentObj = new Student();

console.log("-------for base class of person-------");
personObj.sleep();
personObj.eat();
console.log("---------------------------------");

console.log("-------for base class of student-------");
studentObj.sleep();
studentObj.eat();
studentObj.study();
console.log("---------------------------------");

 

静态调用

var util = require("util");
var Person = require('./person');

//定义student类
function Student(){
  Person.call(this);
}

//将Student继承Person
util.inherits(Student,Person);

//重写study方法
Student.prototype.study = function(){
  console.log("I am learning");
}

//将该动态对象的方法直接暴露给module.exports

var student= new Student();
module.exports.study = student.study;

module.exports.eat = student.eat;

module.exports.sleep = student.sleep;

//静态调用测试,无需实例化Student对象,

 var Student = require('./student');

Student.sleep();
Student.eat();
Student.study();

posted @ 2017-05-25 20:27  宝宝少少  阅读(185)  评论(0编辑  收藏  举报