创建一个对象文件foo.js,里面创建一个对象,使用module.exports = foo;可被外部文件所访问
//定义私有和公共的变量 var _name, _age; var name = '', age = 0; //模块对象的构造函数 var foo = function (name,age) { _name = name; _age = name; } //获取私有变量_name foo.prototype.getName = function () { return _name; } //设置私有变理_name foo.prototype.setName = function (name) { _name = name; } //获取私有变理_age foo.prototype.getAge = function () { return _age; } //设置私有变理_age foo.prototype.setAge = function (age) { _age = age; } //设置公有变量值 foo.prototype.name = name; foo.prototype.age = age; //定义类似PHP或JAVA的静态属性与方法 foo.staticName = ''; foo.staticFunction = function () { console.log(foo.staticName); } //让改模块外部可访问,如果当前模块是类,需要使用以下方法 module.exports = foo; /* @ prototype 属性使您有能力向对象添加属性和方法。每个函数都有一个默认的prototype属性。 */
创建一个app.js,使用require导入foo.js,操用foo.js的属性与方法
var foo = require('./foo.js'); //实类化foo类 var fClass = new foo('zhangjian',32); //设置私有_name fClass.setName('zhengwenlu'); //获取私有_name console.log(fClass.getName()); //设置私有_age fClass.setAge(32); //获取私有_age console.log(fClass.getAge()); //设置公有变量name fClass.name = 'brand'; //设置公有变量age fClass.age = 31; //获取公有变量name console.log(fClass.name); //获取公有变量age console.log(fClass.age); //直接使用对象名,无需实例化,设置变理值并调用函数输出 foo.staticName = 'static'; foo.staticFunction();