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

本文介绍了Requirejs中模块导出的三种方式及其优先级:return方式优先级最高,module.exports次之,exports最低。文章详细解释了每种导出方式的特点及用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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'
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值