最近在学习seajs,不知道有没有知道如下两段代码的使用区别,分别在什么场景下使用?
define(function(require, exports) {
// 对外提供 foo 属性
exports.foo = 'bar';
// 对外提供 doSomething 方法
exports.doSomething = function() {};
});
define(function(require, exports, module) {
// 对外提供接口
module.exports = {
name: 'a',
doSomething: function() {};
};
});
seajs
javascript
------解决方案--------------------
首先 exports === module.exports, exports 是 module.exports 的一个引用
通常来说,exports 就够用了
exports.doSomething = function() {};
exports.doOthers = function() {};
但有时,我们想提供整个接口的时候,exports 就不行了
var interface = {doSomething:function(){},doOthers:function(){}}
此时书写起来会非常麻烦,需要这样写:
exports.doSomething = interface.doSomething;
exports.doOthers = interface.doOthers;
所以,这个就可以改变 module.exports 的引用来替换掉整个接口
module.exports = interface;
------解决方案--------------------
只用require就行了,用seajs也就冲这个来
至于其余的,不理会;对外提供接口什么的,哪用说的这么高级?
自己预先定义一个全局对象就行了,要外部调用的函数放全局对象上就ok了
------解决方案--------------------
每个项目需求不同,你只需要require说明你的项目很low,js架构很浅