• 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

  • 相关阅读:
    TKStudio示例工程LPC1220_GPIO_LED学习
    LIve Writer图片自动水印,自动居中,自动为原始大小的设置方法.
    cmd 修改文件属性
    [原创]Java下X86机,Bytes和Int的转换
    [原创]把","号分隔的字串转化成一列的Table
    [原创]Java实现PKCS7填充的DES加密(修订版)
    利用ADODB.Stream实现 Bytes到String的指定编码的转换
    [原创]利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆(修改)
    [原创]用XMLHttp BinaryWrite,Post GB2312编码的字串
    UTF8ToBytes
  • 原文地址:https://www.cnblogs.com/auh2010006/p/5716983.html
Copyright © 2020-2023  润新知