2015-08-21 33 views
1

我使用的模块,Browserify这样的:论点Browserify模块

module.exports = (function() { 

'use strict'; 

    var hide = function(elementId) { 

     var element = document.getElementById(elementId); 
     element.style.opacity = 0; 

    }; 

    return hide; 

}()); 

正如我在我的模块中使用“文件”,我应该进入这样的说法?

同上文档,窗口,导航,XMLHttpRequest的

module.exports = (function(document) { 

    ... 

}(document)); 

不管答案是什么,你能解释一下为什么吗?

+0

如果您有两个问题,最好还是问两个单独的问题。 – Cleb

+0

我修好了。谢谢 – HeyDaddy

回答

2

Browserify将每个模块封装在一个函数中。在额外的包装中没有优势。通过文件或任何全球作为参数也没有赢得任何东西。您可以编写浏览器模块,就好像它们在节点模块中一样只要将每个文件视为一个在第一个require上被调用的大函数即可。

1

所以我写这直接:

module.exports = function(elementId) { 

    'use strict'; 

    var element = document.getElementById(elementId); 
    element.style.opacity = 0; 

} 

如果我想有许多公共方法返回一个对象(透出模块模式),我必须继续这样?我必须通过文件?

module.exports = (function() { 

    var on = function() { 

    }; 

    var off = function() { 

    }; 

    return { 
     on: on, 
     off: off 
    }; 

})();