博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
crossplatform---Nodejs in Visual Studio Code 06.新建Module
阅读量:6397 次
发布时间:2019-06-23

本文共 2364 字,大约阅读时间需要 7 分钟。

1.开始

Node.js:https://nodejs.org

 

2.Moudle

js编程中,由于大家可以直接在全局作用域中编写代码,使开发人员可以很容易的新建一个全局变量或这全局模块,这些全局变量或全局模块在工程化的开发中,极易互相冲突,同时也很难搞清楚它们之间互相的依赖关系。Node.js采用CommonJS规范来定义模块与使用模块,提供了required和module.exports来解决这个问题。

required()方法,通过required方法将其他模块引用到当前作用域内。

module.exports方法,从当前作用域中导出对象Object或类定义Function。

 

定义一个Module,仅包含静态方法

circle.js:提供了两个方法

area() 求面积,circumference()求周长

1
2
3
4
5
const PI = Math.PI;
 
exports.area = (r) => PI * r * r;
 
exports.circumference = (r) => 2 * PI * r;

调用这个Module app.js:

1
2
const circle = require(
'./circle.js'
);
console.log( `The area of a circle of radius 4 is ${circle.area(4)}`);

上面的示例代码定义一个Module=.Net中包含静态方法的静态类。

 

定义一个Module,表示普通类

user.js:定义一个User类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
'use strict'
;
 
const util = require(
'util'
);
 
function 
User(sId, sName) {
  
this
.Id = sId;
  
this
.Name = sName;
}
 
User.prototype.toString = 
function 
() {
  
return 
util.format(
"Id='%s' , Name='%s'"
this
.Id, 
this
.Name);
}
 
module.exports = User;

app.js:

1
2
3
4
5
6
7
8
9
10
11
var 
User = require(
'./user'
);
 
var 
pSource = [];
pSource.push(
new 
User(
'liubei'
,
'刘备'
));
pSource.push(
new 
User(
'guanyu'
,
'关羽'
));
pSource.push(
new 
User(
'zhangfei'
,
'张飞'
));
 
for 
(
var 
index = 0; index < pSource.length; index++) {
  
var 
element = pSource[index];
  
console.log( `${element.toString()}`);
}

console

1
2
3
Id=
'liubei' 
, Name=
'刘备'
Id=
'guanyu' 
, Name=
'关羽'
Id=
'zhangfei' 
, Name=
'张飞'

 

定义一个Module表示全局变量

user.js:使用Count()方法来统计实例化总数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
'use strict'
;
 
const util = require(
'util'
);
 
var 
nCount = 0;
 
function 
User(sId, sName) {
  
this
.Id = sId;
  
this
.Name = sName;
  
nCount++;
}
 
User.prototype.toString = 
function 
() {
  
return 
util.format(
"Id='%s' , Name='%s'"
this
.Id, 
this
.Name);
}
 
module.exports = User;
 
module.exports.Count = 
function 
() {
  
return 
nCount;
}

app.js

1
2
3
4
5
6
7
8
9
10
11
var 
User = require(
'./user'
);
 
var 
pSource = [];
pSource.push(
new 
User(
'liubei'
,
'刘备'
));
pSource.push(
new 
User(
'guanyu'
,
'关羽'
));
pSource.push(
new 
User(
'zhangfei'
,
'张飞'
));
 
pSource.forEach(
function
(pUser) {
  
console.log( `${pUser.toString()}`);
}, 
this
);
console.log( `count is ${User.Count()}`);

console

1
2
3
4
Id=
'liubei' 
, Name=
'刘备'
Id=
'guanyu' 
, Name=
'关羽'
Id=
'zhangfei' 
, Name=
'张飞'
count is 3

http://www.cnblogs.com/mengkzhaoyun/p/5393784.html

转载于:https://www.cnblogs.com/auh2010006/p/5716983.html

你可能感兴趣的文章
mysql 、redis的区别
查看>>
使用JPA中@Query 注解实现update 操作
查看>>
7.4. APC Cache (php-apc - APC (Alternative PHP Cache) module for PHP 5)
查看>>
Web 仪表盘
查看>>
我的Fedora 7硬盘安装过程
查看>>
Python——SSHClient.py
查看>>
MVC解决更新冲突问题
查看>>
江西理工大学南昌校区cool code竞赛
查看>>
[LeetCode] Trim a Binary Search Tree 修剪一棵二叉搜索树
查看>>
Ubuntu SDL lib 安装
查看>>
Java 并发编程内部分享PPT分享
查看>>
关于discuz中禾金投票系统循环出现引导页的问题
查看>>
C#开源系统大汇总
查看>>
Linux服务器安全初始化自选安装Shell脚本
查看>>
PyCharm教程
查看>>
Python 简单的数据结构(一)
查看>>
谁说我们只会做工作流?做实验室管理系统我们也内行。
查看>>
yum安装开发库
查看>>
我的友情链接
查看>>
开源Python网络爬虫资料目录
查看>>