NodeJs_2

NodeJs_2

今天主要学习NodeJs的模块(Module)

创模块

我们创建一个Js文件,命名为mymodule.js
var name;
exports.setName = function(n){
	name = n;
};
exports.getName = function(){
	return name;
};
我们来使用这个模块,在同一个目录下创建一个test.js
var m = require('./mymodule');
m.setName('Tony');
console.log(m.getName());
我们来运行一下:
node test.js
就可以看到输出: Tony

还没完,我们对test.js稍加修改
var m1 = require('./mymodule');
m1.setName('Tony');

var m2 = require('./mymodule');
m2.setName('Nick');

console.log(m1.getName());
输出的结果却是 Nick
所以可以得出在一个Js里面无论调用了多少require,实质上指向的同一个地址,所以m2改变了Name的值,m1也所至而变了,这个不难理解
我们可以用创建新对象的方式来处理这问题
将mymodule.js改为
function People(){
	var name;
	this.setName = function(n){
		name = n;
	};
	this.getName = function(){
		return name;
	};
};

module.exports = People;

将test.js改为
var People = require('./mymodule');

p = new People();
p.setName('T');

p2 = new People();
p2.setName('B');

console.log(p.getName());

运行的结果是:T
这个很明显创建了两个不同的对象,所以p2值变了,和p没有任何关系,他们分别拥有各自独立的内存空间,互不干涉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值