|
上述代码,通过一个立即执行函数,给予了模块的独立作用域,同时通过全局变量配置了我们的模块,达到了模块化的目的。
当前的模块化方案
先来说说 CommonJS 规范,在 Node.JS 发布之后,CommonJS 模块化规范就被用在了项目开发中,它有几个概念给大家解释一下。
-
每个文件都是一个模块,它都有属于自己的作用域,内部定义的变量、函数都是私有的,对外是不可见的;
-
每个模块内部的 module 变量代表当前模块,这个变量是一个对象;
-
module 的 exports 属性是对外的接口,加载某个模块其实就是在加载模块的 module.exports 属性;
-
使用 require 关键字加载对应的模块,require 的基本功能就是读入并执行一个 JavaScript 文件,然后返回改模块的 exports 对象,如果没有的话会报错的;
下面来看一下示例,我们就将上面提到过的代码通过 CommonJS 模块化。
是做了上述的操作,才能使得我们在写前端代码的时候,使用最新的 ECMAScript 语法,并且尽可能的压缩代码的体积,使得浏览器加载静态脚本时能更加快速。
传统的模块化
随着 Ajax 的流行,前端工程师能做的事情就不只是“切图” 这么简单,现在前端工程师能做的越来越多,开始出现了明确的分工,并且能够与服务端工程师进行数据联调。这里说的传统模块化还不是后现代的模块化,早期的模块化是不借助任何工具的,纯属由 JavaScript 完成代码的结构化。在传统的模块化中我们主要是将一些能够复用的代码抽成公共方法,以便统一维护和管理,比如下面代码。
一命令执行了以下操作:
-
find . -name “*.png” :find 将从当前目录中搜索名称和 *.png 相匹配的对象,type -f 指定了只搜索文件。
-
-print0:名称将以空字符结尾,并且保留空格和特殊字符。
-
xargs -0:xargs 也将考虑文件名以空值结尾,并且空格和特殊字符不会引起问题。
-
rm -v -rf "{}":rm 将反馈正在进行的操作(-v),递归进行操作(-r),不发送错误提示而直接删除文件(-f)。每个文件名替换 "{}"。
命令执行之后,将搜索了所有子目录,删除了其中匹配的文件。
删除嵌套目录中的文件
如果文件名中包含空格或者其他特殊字符(例如换行符),xargs 将无法正确解释这些文件名。我们可以使用 -0(空终止符)选项来解决这一问题。此时, xargs 将使用 null 字符作为文件名最终的分隔符。
这里我们以 find 命令为例。find 有自己的选项来处理文件名中的空格和特殊字符,即 -print0(全名,空字符)选项。

(编辑:宣城站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|