所以我一直在玩 JS 并browserify
允许将我的 JS 拆分成更小的文件块。它很好用,但是,我仍然不知道如何正确使用该require
功能。
对我来说,它充当服务定位器,因为它查找要加载的正确“文件”并返回一个对象。(例如,在 PHP 中,require
将文件加载到内存中但不会construct
)。
例子:
var Foo = function() {
console.log("I'm the Foo object");
};
module.exports = Foo;
然后,要使用它,我会这样做:
var Foo = require('foo');
和
var foo = new Foo();
请注意,未构造导出的函数。
我本可以这样做:
var foo = require('foo')();
这些方法对我来说似乎都不对(我可能错了)。
- 1)这样做很常见吗?还是应该导出执行的函数?
无论如何,这个介绍是为了了解我应该如何使用 require 函数。
例如,如果我有一个依赖于 Bar 的 Foo 对象,我有两种方法:
服务地点:
var Foo = function() {
var Bar = require('bar')();
Bar.doSomethingAwesome();
};
module.exports = Foo;
或者我可以这样做:
依赖注入
var Foo = function(bar) {
bar.doSomethingAwesome();
};
module.exports = Foo;
// And at a latter time
var foo = require('foo')(require('bar')); /// eurk
我显然知道这是两件不同的事情,并且服务于不同的目的。
- 2)但我想知道在 JS 中常见/正确的做法是什么,是否有任何公认的规则?