`
zhouyrt
  • 浏览: 1163871 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript中模块“写法”

 
阅读更多

在JavaScript模块到底是什么,能用代码具体展现一下吗?

 

其实上一篇已经写了一段事件模块代码

event = function() {
	// do more
	
	return {
		bind: function() {},
		unbind: function() {},
		trigger: function() {}
	};	
}();

 

这能代表“模块”吗?这就是一个JS对象啊。原来概念就是这么喊出来的,以为有多么深奥。

 

是的,JavaScript中模块多数时候被实现为一个对象。这么看来,多数时候我们都写过“模块”(但没有在整个项目中应用模块化思想)。或许每个人写模块的方式(风格)还不同。比如上面的事件模块是一个匿名函数执行,匿名函数中封装了很多代码,最后通过return返回给event变量,这个event就是事件模块的接口。

 

再比如jQuery,它也是一个匿名函数执行,但它并不返回接口对象。而是将自己暴露给window对象。

(function(window){
	
	// ..
	
	// exports
	window.jQuery = window.$ = jQuery;
	
})(window);

 

又如SeaJS,它一开始就将接口公开了

/**
 * Base namespace for the framework.
 */
this.seajs = { _seajs: this.seajs };

 

后续就是很多的匿名函数执行给seajs添加很多工具方法。注意,这里的this在浏览器环境指window对象,如果是定位在浏览器中,这个this也可以去掉。就象Ext。

Ext = {
    /**
     * The version of the framework
     * @type String
     */
    version : '3.1.0'
};

 

 

呃,我们已经看到了四种方式写模块(把jQuery,SeaJS,Ext看成模块,呃很大的模块)。

 

哪一种更好呢? 哪一种更适合在浏览器端呢?

 

纯从代码风格上说,是萝卜白菜各有所爱。只要我们运用了“模块化”的思想来开发就行了。

 

但如果有统一的语法格式来写模块岂不是更好,就不会出现各用各的风格来写模块而使代码乱糟糟。

 

这就是目前的现状,开发者强烈需要一种统一的方式来写模块(最好是语言内置了)。这时一些组织出现了,最具代表的如CommonJSAMD 。此外ECMAScript 也开始着手模块的标准化写法。

 

 

无论它们提供什么样的写法,我们需要的仅仅是

 

1,将一些零散代码封装成一个有用的单元(encapsulate)

2,导出模块的接口API(exports)

3,方便友好引用其它模块(dependency)


 

下一篇:JavaScript在服务器端的模块化

 

 

 

0
0
分享到:
评论

相关推荐

    JavaScript模块化编程

    模块开发的不同写法反映了JavaScript模块化演进的过程: 1. **原始写法**:最简单的模块形式,即将一组相关的函数定义在一起。但这种方法容易导致全局命名空间的污染,且模块成员之间的关系不明显。 ```...

    Javascript模块化编程(一)模块的写法最佳实践

    Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。 但是,Javascript不是一种模块化编程语言,它不支持”类”(class),更遑论”...

    JavaScript手册-中文文档

    JavaScript是Web开发中不可或缺的一部分,它是一种轻量级的、解释型的编程语言,主要用于增强网页的交互性。这份“JavaScript手册—中文文档”提供了一个全面的JavaScript学习资源,涵盖了从基础语法到高级特性的...

    MooCSS模块化面向对象的css写法

    《MooCSS:模块化面向对象的CSS写法详解》 在现代Web开发中,CSS已经从简单的样式语言发展为复杂、高效的样式管理系统。MooCSS(Module-Oriented Object CSS)是一种基于模块化和面向对象思想的CSS编写方式,旨在...

    NodeJS的模块写法入门(实例代码)

    在Node.js中,模块是代码组织的基本单位,它允许我们将应用程序的不同部分封装起来,以便于重用、管理和维护。Node.js的模块系统是基于CommonJS规范实现的,它提供了加载和导出模块的功能。让我们深入了解一下如何在...

    JavaScript 模块化编程(笔记)

    #### JavaScript模块的写法 1. **原始写法** - 这种写法简单,将功能相关的函数和变量放在一起,但其缺点是容易造成全局变量污染,无法保证不与其他模块冲突。 2. **对象写法** - 把函数和变量封装在一个对象...

    javascript模块化编程库require的用法.docx

    ### JavaScript模块化编程库Require.js的使用方法 #### 引言 随着Web应用的日益复杂,传统的JavaScript开发方式已无法满足高效开发与维护的需求。在这样的背景下,Require.js作为一种先进的JavaScript模块加载器,...

    淘宝SDK一个模板多个风格-模块化前的写法

    然而,在淘宝SDK(Software Development Kit)的早期版本中,实现一个模板支持多个风格往往需要采取非模块化的写法。本篇文章将深入探讨这种“淘宝SDK一个模板多个风格-模块化前的写法”,并分析其工作原理。 首先...

    编写可维护的JavaScript(中文)

    《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...

    优化vuex的状态流写法按需加载每个模块

    然而,在大型项目中,随着应用模块的增多,Vuex的状态管理可能会变得复杂且难以维护。为了优化这种情况,开发者通常会采用按需加载策略,以减少不必要的代码体积和提升应用性能。"优化vuex的状态流写法按需加载每个...

    javascript 中(function{})这种写法什么意思?.docx

    在JavaScript中,`(function(){})()` 这种写法被称为**立即执行函数表达式**(Immediately Invoked Function Expression,简称IIFE)。它是一种特殊的函数调用方式,其特点是在定义一个函数的同时立即执行该函数。 ...

    javascript中函数的写法实例代码详解

    本文详细介绍了JavaScript中函数的写法,并通过具体的实例代码,帮助读者理解函数的定义、参数的使用以及函数的返回值等核心概念。以下是对本文内容的知识点详细阐述: 1. JavaScript函数的基本写法 JavaScript函数...

    详解JavaScript的另类写法

    本篇详解将介绍几种JavaScript的另类写法,涵盖了匿名函数、取整技巧、条件判断、字符串拼接、模块定义和继承机制等方面。这些技巧可以帮助开发者优化代码,并在团队中形成统一的代码规范。 首先,JavaScript中的...

    JavaScript第十章完整案例

    模块化编程是大型项目中必不可少的,JavaScript提供了CommonJS和ES6的模块系统,以更清晰的方式组织代码和管理依赖。 面向对象编程(OOP)在JavaScript中通过构造函数、原型链和类来实现。构造函数用于创建具有特定...

    javascript的几种写法总结

    最后,现代JavaScript开发中广泛使用模块化编程。ES6引入了import和export关键字,允许开发者进行模块化编程。例如: ```javascript // someModule.js export const a = 1; export function b() { // ... } // ...

    NodeJS自定义模块写法(详解)

    最后,在介绍自定义模块的写法时,有必要强调Node.js社区推崇的“约定优于配置”的原则,例如按照惯例创建一个`index.js`作为模块的入口文件,或者在`package.json`文件中指定模块的入口文件。这些约定简化了模块的...

    Javascript模块化编程(一):模块的写法

     Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。  但是,Javascript不是一种模块化编程语言,它不支持"类"(class),更遑论...

    Javascript中文API

    JavaScript支持函数表达式(匿名函数和具名函数)以及箭头函数的写法。 4. **数组和对象**:数组是有序的数据集合,可以存储不同类型的元素。对象是键值对的集合,键通常是字符串,值可以是任意类型。JavaScript还...

    Javascript征途

    此外,函数式编程的思想和实践在JavaScript中也有着重要的地位,书中的内容可能会涉及这方面的知识。 面向对象编程在JavaScript中占据着重要位置。虽然JavaScript不是一种传统的面向对象语言,但它提供了原型继承和...

Global site tag (gtag.js) - Google Analytics