• node.js模块化写法入门


    子模块的写法:

    function SVN(){
        console.log('svn initialized');
        return this;
    }
    
    function getInstance() {
        console.log('getInstance');
        return new SVN();
    }
    
    module.exports = SVN;
    module.exports.getInstance = getInstance;

    这里定义了一个模块叫SVN,可以通过两种方式把这个模块的方法公开给外界调用。

    一个是赋值给module.exports,另外一个就是设置exports的属性。

    使用时:

    var SVN = require('./lib/svn.js');
    var svn1 = new SVN();
    var svn2 = SVN.getInstance();

    svn1和svn2就分别对应上述的两种公开方式。

    我觉得习惯上,如果这个模块就是一个类,那么用第一种方法比较合适;如果这个就是一个工具库,只是静态函数,那么用第二个方式;如果这个模块其实包含很多个类,那么还是第二个方式,这个模块就变了一个包(package)或者说命名空间,例如:

    搞个define.js,假设person.js导出了一个Person类,animal.js导出一个Animal类

    module.exports.Person = require('./person.js');
    module.exports.Animal = require('./animal.js');

    使用时:

    var define = require('./define.js');
    var person = new define.Person();
    var animal = new define.Animal();

    嗯,非常有面向对象的感觉。。。咳咳,自从很久很久以前用过java后,这种类、包的思维就固化了,真不知道是好事还是坏事。。。

  • 相关阅读:
    Linux添加PATH,即命令自动补全功能
    编程的奥义
    Windows SDK笔记
    一个烂电源,毁了我一天的工作
    贪念
    VC菜菜鸟创建一个即时串口通信程序
    IP视频监控系统开放式平台的5个标志
    敷铜的入门
    解决:Ulead VideoStudio 启动黑屏的问题
    数据结构中,关于“大小端”的数据存储方式的相关问题
  • 原文地址:https://www.cnblogs.com/kenkofox/p/4520675.html
Copyright © 2020-2023  润新知