crossplatform---Nodejs in Visual Studio Code 06.新建Module
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
crossplatform---Nodejs in Visual Studio Code 06.新建Module的更多相关文章
- Nodejs in Visual Studio Code 06.新建Module
1.开始 Node.js:https://nodejs.org 2.Moudle js编程中,由于大家可以直接在全局作用域中编写代码,使开发人员可以很容易的新建一个全局变量或这全局模块,这些全局变量或 ...
- Nodejs in Visual Studio Code 10.IISNode
1.开始 Nodejs in Visual Studio Code 08.IIS : http://www.cnblogs.com/mengkzhaoyun/p/5410185.html 参考此篇内容 ...
- Nodejs in Visual Studio Code 14.IISNode与IIS7.x
1.开始 部署IISNode环境请参考:Nodejs in Visual Studio Code 08.IIS 部署Nodejs程序请参考:Nodejs in Visual Studio Code 1 ...
- Nodejs in Visual Studio Code 11.前端工程优化
1.开始 随着互联网技术的发展,企业应用里到处都是B/S设计,我有幸经历了很多项目有Asp.Net的,有Html/js的,有Silverlight的,有Flex的.很遗憾这些项目很少关注前端优化的问题 ...
- Nodejs in Visual Studio Code 04.Swig模版
1.开始 设置Node_Global:npm config set prefix "C:\Program Files\nodejs" Express组件:npm install e ...
- Nodejs in Visual Studio Code 01.简单介绍Nodejs
1.开始 作者自己:开发人员,Asp.Net , html / js , restful , memcached , oracle ,windows , iis 目标读者:供自己以后回顾 2.我看No ...
- Nodejs in Visual Studio Code 07.学习Oracle
1.开始 Node.js:https://nodejs.org OracleDB: https://github.com/oracle/node-oracledb/blob/master/INSTAL ...
- Nodejs in Visual Studio Code 05.Swig+Bootstrap
1. 开始 准备好Express+Swig的练习代码:https://github.com/Mengkzhaoyun/nodepractise 准备好AdminLTE后台管理模版:https://ww ...
- Nodejs in Visual Studio Code 02.学习Nodejs
1.开始 源码下载:https://github.com/sayar/NodeMVA 在线视频:https://mva.microsoft.com/en-US/training-courses/usi ...
随机推荐
- X/Y型文案
[X/Y型文案] X型文案人,他们更像你语言学家.修辞学家和诗人,他们的日常工作就是想创意.查词典和构思修辞,以想办法用华丽的表达来描述产品. Y型文案往往并不华丽,有时甚至只不过是简单地描绘出用户心 ...
- JavaScript初学者应注意的七个细节(转)
http://www.cnblogs.com/lhb25/archive/2011/01/10/1932284.html 每种语言都有它特别的地方,对于JavaScript来说,使用var就可以声明任 ...
- Selenium2+python自动化17-JS处理滚动条
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...
- HTML5和CSS3基础教程(第8版)-读书笔记(2)
第7章 CSS构造模块 7.1 构造样式规则 样式表中包含了定义网页外观的规则.样式表中的每条规则都有两个主要部分:选 择 器(selector) 和 声 明 块(declaration block) ...
- ADB理解
在做手机测试时候,经常用到的命令就是adb.如adb shell,adb devices,adb logcat等等 那么什么是adb,怎么用呢? 一.adb adb的全称为Android Debug ...
- jQuery实现无缝滚动条
很多时候只看别人的代码时很难看懂.有很多原因,有时候可能是没有耐心,这时候看一下实现的原理就很快明白代码的内容,所以要加些注释,让自己让别人都能看明白:有的时候就是因为知识有限就是不懂,哪怕代码很简单 ...
- C++11 删除链表重复数值
#include <memory> #include <iostream> #include <chrono> #include <thread> us ...
- 关于java中线程休眠的另一种写法
编辑器加载中... 优先使用TimeUnit类中的sleep() TimeUnit是什么? TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的 ...
- android text
"@you bang--- go on -------" 需要做分享内容,前面有段格式固定写死,同时颜色为灰色:后面的内容可以编辑,颜色为黑色,同时支持多行 有人用textview ...
- 黑马程序员_Java基础:十进制转换其他进制
------- android培训.java培训.期待与您交流! ---------- 平时使用中,进制转换只要使用Integer这个包装类中的方法即可完成. 但其实我们也能用自己的方法去实现,这有助 ...