码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript模块化简史

时间:2019-03-30 13:16:24      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:全局   OLE   web   com   javascrip   文件的   回顾   window   需要   

https://ponyfoo.com/articles/brief-history-of-modularity

这篇文章,我们会快速回顾和总结Javascript世界中的模块化的里程碑事件。这篇文章不会完整的列出所有的事件,而是回顾模块化发展历史中那些重要的大事件。

Script标签和闭包

在以前,Javascript写在HTML的<script>标签里面,或者好一点,写在单独的Javascript文件里面,它们都共享一个全局作用域。

在这些文件或者标签中声明的变量,都会关联到全局的window对象。这种情况下,会出现很多意外的错误,甚至会导致应用崩溃。比如,在一个script中,意外的覆盖了之前声明的变量名称。

最终,由于web应用日渐壮大和复杂化,全局域会很危险是尽人皆知的。然后就引入了著名的即时调用函数表达式(IIFE)。IIFE会把一个文件,或者文件的部分代码包裹进入一个函数,然后在定义函数之后立即执行它。Javascript中的每个函数都会创建一个单独的域,意味着var声明的变量将会绑定在IIFE内部,不会变成全局变量。

多谢IIFE,它帮助我们止住了Javascript隐式全局作用域带来的痛苦。

下面的例子中,是几个不同风格的IIFE。每个IIFE中的代码都是隔离的,如果要访问和赋值全局变量,需要显式地使用类似window.fromIIFE = true的表达式。

(function() {
    console.log('IIFE using parenthesis')
})()

~function() {
    console.log('IIFE using bitwise operator')
}()

void function() {
    console.log('IIFE using the void operator')
}()

Javascript模块化简史

标签:全局   OLE   web   com   javascrip   文件的   回顾   window   需要   

原文地址:https://www.cnblogs.com/thomaszdxsn/p/Javascript-mo-kuai-hua-jian-shi.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!