美文网首页
浅理解模块化和封装 2019-03-25

浅理解模块化和封装 2019-03-25

作者: 蓝罗人 | 来源:发表于2019-03-25 21:20 被阅读0次

今天看了一下node.js的书,理解了模块化的意思,之前在项目中,不论是react-native还是vue,只要是看见exports和require,总是一头雾水,今天就来解释一下,来加深一哈理解。

1.为何要进行模块化? 模块化就是将功能进行拆解,再组合的过程。因为一个项目不可能总是由一个文件构成的,模块化可以更好地服务于你。

2.模块化的两种方法:

第一种方法最简单的就是创建两个文件,在另外一个文件中引用这个文件,并调用这个模块中的方法。

举个栗子:

在module.js中有这样的代码:

//module.js

var name;

exports.setName = function(BName) {  

name = BName;

};

exports.sayHello = function() {  

console.log('看你不爽的 ' + name);

};

在另外一个文件getModule.js中:

//getmodule.js

var myModule = require('./module'); //在同一目录文件下

myModule.setName('Bacon');

myModule.sayHello();

运行node getmodule.js,可也以安装supervisor,可以进行实时调试,很舒服。

输出结果是:

看你不爽的 Bacon

第二种方法就是进行封装,再来看:

//capsuleModule.js

function fSBacon() {  

var name;     

this.setName = function (BName) {    

name = BName;  

};   

      this.sayHello = function () {    

console.log('依然看你不爽的 ' + name);

};

};

module.exports = fSBacon; 

注:也可用exports.Hello = Hello; 不可以通过对 exports 直接赋值代替对 module.exports 赋值。 exports 实际上只是一个和 module.exports 指向同一个对象的变量, 它本身会在模块执行结束后释放,但 module 不会,因此只能通过指定 module.exports 来改变访问接口。

在另外一个文件getCapsuleModule.js中:

//getCapsuleModule.js

var fSBacon = require('./ capsuleModule’);

bacon = new fSBacon ();

bacon.setName('Bacon');

bacon.sayHello();

接管依然如是。

今天要写的就这么些喽,主要是对模块化和封装有了一些更深的认识,知道的太少。

然而秋招的脚本更近了……,实习还没有着落......

相关文章

  • 浅理解模块化和封装 2019-03-25

    今天看了一下node.js的书,理解了模块化的意思,之前在项目中,不论是react-native还是vue,只要是...

  • iOS 类方法扩展

    1、iOS --导航栏UIBarButtonItem封装2、深入浅出理解分类(category)和类扩展(exte...

  • 前端模块化 对于模块化的理解: 什么是模块? 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进...

  • JS模块化初探-CommonJs、AMD、CMD和Requist

    什么是模块化? 简单理解:将各个功能封装为独立的模块,当需要某个功能时,只需要加载相应的模块即可 为什么出现模块化...

  • UNIX 编程艺术#模块化原则

    模块化原则,Unix 程序员的传统 模块化 API 设计 模块化代码的首要特质就是封装。封装性好的模块不会过多向外...

  • c++一些面试题

    c++三大特性封装封装可以隐藏实现细节,使得代码模块化;封装是把成员变量和成员函数封装起来,对成员变量的访问只能通...

  • 模块化详细 封装 axios 请求(手撸)

    自己封装的模块化 axios 请求,详细 新增 http.js 文件用于封装 axios Import axios...

  • python函数

    模块化编程 定义:把程序进行封装 函数封装 面向对象 面向文件 函数:封装完不会执行,调用来使用。 函数是什么:一...

  • js面向对象之 面向对象的三大特性

    01封装 好处:复用,降低冗余度,更有利于模块化编程,能够为变量函数提供更多的保护。 使用对象来封装变量和函数。 ...

  • 模块化封装

    JS是没有模块(module)这个概念的(ES5标准下,ES6中已经实现,由于ES6目前还未普及与实现,我们的实际...

网友评论

      本文标题:浅理解模块化和封装 2019-03-25

      本文链接:https://www.haomeiwen.com/subject/sfrivqtx.html