博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript模块化编程
阅读量:6816 次
发布时间:2019-06-26

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

hot3.png

Javascript 模块化编程

1、模块就是实现特定功能的一组方法。如下:

function m1(){    //...}function m2(){   //...}

2、面向对象的写法:

var module1 = new Object({  _count : 0,  m1 : function (){      //...  },  m2 : function (){      //...  }});

上面的函数m1()和m2(),都封装在module1对象里。使用的时候,就是调用这个对象的属性。module1.m1();

3、立即执行的写法

使用"立即执行"(Immediately-Invoked Function Expression,IIFE),可以达到不暴露私有成员的目的。

var module1 = (function(){   var _count = 0;   var m1 = function(){     //...   };   var m2 = function(){      //...   };   return {     m1 : m1,     m2 : m2   };})();

4、放大模块:

如果一个模块很大,必须分成几个部分,或者一个模块需要继承另一个模块,这时就有必要采用"放大模式"(augmentation)。

var module1 = (function (mod){   mod.m3 = function () {      //...    };    return mod; })(module1);

5、宽放大模块:

在浏览器环境中,模块的各个部分通常都是从网上获取的,有时无法知道哪个部分会先加载。如果采用上一节的写法,第一个执行的部分有可能加载一个不存在空对象,这时就要采用"宽放大模式"

var module1 = ( function (mod){    //...    return mod;  })(window.module1 || {});

与"放大模式"相比,"宽放大模式"就是"立即执行函数"的参数可以是空对象。

六、输入全局变量

独立性是模块的重要特点,模块内部最好不与程序的其他部分直接交互。

为了在模块内部调用全局变量,必须显式地将其他变量输入模块。

var module1 = (function ($, YAHOO) {    //...  })(jQuery, YAHOO);

上面的module1模块需要使用jQuery库和YUI库,就把这两个库(其实是两个模块)当作参数输入module1。这样做除了保证模块的独立性,还使得模块之间的依赖关系变得明显。这方面更多的讨论,参见Ben Cherry的著名文章。

 

http://www.ruanyifeng.com/blog/2012/11/require_js.html

转载于:https://my.oschina.net/u/347414/blog/852190

你可能感兴趣的文章
【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
查看>>
为什么我刚发表的文章变成了“待审核”,csdn有没有官方解释啊
查看>>
Android多线程源码详解一:handler、looper、message、messageQueue
查看>>
SaaS加速器II 能力中心:互利互补 共享商业红利
查看>>
病毒木马防御与分析实战
查看>>
分布式工作流任务调度系统Easy Scheduler正式开源
查看>>
Flutter实战(一)写一个天气查询的APP
查看>>
Python零基础学习笔记(十二)—— 字符串及其常用方法
查看>>
Webpack 和 Gulp 构建伪命令行项目
查看>>
在线面试, 前端, 提纲, 草稿
查看>>
hive_异常_01_ Terminal initialization failed; falling back to unsupported
查看>>
分布式事务键值数据库 TiKV 加入 CNCF 沙箱孵化器
查看>>
Vue - day1
查看>>
kvm.virsh常用命令篇
查看>>
[Hive]Hive使用指南四 客户端导入数据
查看>>
10.JUC线程高级-线程八锁
查看>>
Apache Flink轻量级异步快照机制源码分析
查看>>
PostgreSQL 11 preview - 分区表 增强 汇总
查看>>
MediaCodec在Android视频硬解码组件的应用
查看>>
用JAVA自己画一张二维码
查看>>