您现在的位置:首页 >> 前端 >> 内容

html开发中功能块为单位进行程序设计的模块化解析

时间:2018/2/22 15:06:46 点击:

  核心提示:以功能块为单位进行程序设计,实现求解算法的方法称为模块化,原则是高内聚,低耦合,高内聚是尽量减少不同文件中的函数的交叉引用,低耦合是模块与模块之间要相互独立,模块化的目的是为了降低程序设计的复杂度,使...

以功能块为单位进行程序设计,实现求解算法的方法称为模块化,原则是“高内聚,低耦合”,高内聚是尽量减少不同文件中的函数的交叉引用,“低耦合”是模块与模块之间要相互独立,模块化的目的是为了降低程序设计的复杂度,使程序设计、调试和维护等操作简单化。模块化的产生是由于网站页面复杂度暴露出的,比如全局变量的冲突,函数命名冲突,依赖关系处理,实例中b.js依赖a.js,标签书写顺序必须按照先后排列。因此js模块化编程已经成为一个迫切的需要。

当下流行的模块化规范主要有,AMD、CMD、COMMONJS

AMD 是RequireJS 在推广过程中对模块化定义的规范化产出(异步加载 依赖前置)

   define(['package/lib'],function foo(){
     	lib.log('hello world')
     }
      return {
      	foo:foo
      }
     )

CMD 是SeaJS 在推广过程中对模块化定义的规范化产出 (同步 即用即返回 依赖就近)

 define(function(require,exports,module){
    	var $ = require('jqury');
    	var Spinning = require('./spinning')
    })

COMMONJS 是module.exports ?在node.js 定义的

exports.area = fucntion(r){
   return Math.PI*r*r
};

ES6标准模块支持

主要特性 export/import?

import {name,clolr, weight} from "./car"
//导入时可以对模块重命名
import {name as busName} from "./car"
//如果没有模块输出也可加载其他模块
import lodash
//通过*整体加载某个文件
import *as car from "./car"
console.log(car.name);
console.log(car.color);

模块化的具体用法可以查看:

https;//github.com/tc39/ecma262
ES6解析需要babel:
http://babeljs.io/

Tags:HT TM ML L开 
作者:网络 来源:会飞的代码的博客