Requirejs高级应用(七):模块导出的三种方式及优先级

来源:互联网 发布:Mysql解除外键约束 编辑:程序博客网 时间:2024/06/04 18:51

在Requirejs中,模块导出共有三种方式:
1. 通过return方式导出,优先级最高;
2. 通关module.exports对象赋值导出,优先级次之;
3. 通过exports对象赋值导出,优先级最低;

上面的三种优先级是绝对的优先级,无关代码的顺序,例如即使将exports导出放在最后,也会被module.exports覆盖,另外导出的内容只能是优先级最高的那个,而且仅仅包含其内容,绝不会它们内容的组合或并集。

1. 通过return方式导出

return具有阻断性,所以无论怎么写,优先级都是最高的,并且这也是Requirejs的官方推荐方式,如下:

define(function(require, exports, module) {    //  导出模块内容    return {        username : 'yiifaa'    }});

2. 通过modeule.exports对象赋值导出

与return类型,但优先级没有那么高,这是继承至COMMONJS的写法,如下:

define(function(require, exports, module) {    //  导出模块内容    module.exports = {        username : 'yiifaa'    }});

3. 通过exports对象赋值导出

return与module.exports都可以直接导出,而不需要添加属性名,而exports对象导出时必须附加属性名,为什么?因为形参与实参的关系,如下:

define(function(require, exports, module) {    //  以下的导出将会失败,必须首先添加属性,然后再赋值    //  错误的写法    exports = {        username : 'yiifaa'    }    //  成功导出模块内容    //  正确的写法    exports. username = 'yiifaa'});
阅读全文
0 0
原创粉丝点击