SeaJS简介二:模块编写

       在介绍SeaJS模块编写和引用之前先介绍一下关于SeaJS模块化的使用原则。

 

       使用SeaJS开发JavaScript的基本原则就是:一切皆为模块。引入SeaJS后,编写JavaScript代码就变成了编写一个又一个模块,SeaJS中模块的概念有点类似于面向对象中的类——模块可以拥有数据和方法,数据和方法可以定义为公共或私有,公共数据和方法可以供别的模块调用。另外,每个模块应该都定义在一个单独js文件中,即一个对应一个模块。

 

       知道了这些之后我们再来学习模块的编写,载入和引用。

 

       模块编写:

 

       SeaJS中使用define函数定义一个模块。define可以接收三个参数:require, exports, module。

 

       require——模块加载函数,用于记载依赖模块。

       exports——接口点,将数据或方法定义在其上则将其暴露给外部调用。

       module——模块的元数据。

 

       关于模块的几种写法:

 

       第一种是教科书式的写法,也是最常用的一种写法。

 

define(function(require, exports, module) {
    var a = require('a'); //引入a模块
    var b = require('b'); //引入b模块
 
    var data1 = 1; //私有数据
 
    var func1 = function() { //私有方法
        return a.run(data1);
    }
 
    exports.data2 = 2; //公共数据
 
    exports.func2 = function() { //公共方法
        return 'hello';
    }
});

       第二种方法是抛弃exports和module的方式:


define(function(require) {
    var a = require('a'); //引入a模块
    var b = require('b'); //引入b模块
 
    var data1 = 1; //私有数据
 
    var func1 = function() { //私有方法
        return a.run(data1);
    }
 
    return {
        data2: 2,
        func2: function() {
            return 'hello';
        }
    };
});
 

       第三种方式:类似于JSON写法,其实就是没有方法的一种写法。

 

define({
    data: 1,
    func: function() {
        return 'hello';
    }
});
 


        通过这三种方式应该对模块的编写有所了解了,估计你已经迫不及待的想去写几个模块尝试一下了,那就快点来写吧。

你可能感兴趣的:(前端技术)