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();