创建一个对象文件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();