form1.cn
Make a little progress every day

node.js中创建对象为模块,外部文件操作对象属性和方法

10th of January 2018 Javascript Node.js 3213

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