// 4.js var a = require('./5.js'); // 若传的是类,new一个对象 var person = new a('Kylin',20); console.log(person.speak()); // my name is Kylin ,my age is 20 // 若不需要在构造函数时初始化参数,直接调用方法/属性 // a.speak(); // my name is kylin ,my age is 20
// 5.js // Person类 function Person(name,age){ this.name = name; this.age = age; } // 为类添加方法 Person.prototype.speak = function(){ console.log('my name is '+this.name+' ,my age is '+this.age); }; // 返回类 module.exports = Person; // 若构造函数没有传入参数(name,age),直接传入对象 // module.exports = new Person('kylin',20);
说了这么多,其实建议就是,如果只是单一属性或方法的话,就使用exports.属性/方法。要是导出多个属性或方法或使用对象构造方法,结合prototype等,就建议使用module.exports = {} 。文章有很多地方描述的可能不是很准确,提到的点也不够全面,如果有不对的地方,还望斧正!