Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript require():使用module.exports与分配给";这";直接地_Javascript_Node.js - Fatal编程技术网

Javascript require():使用module.exports与分配给";这";直接地

Javascript require():使用module.exports与分配给";这";直接地,javascript,node.js,Javascript,Node.js,我想知道,当这两种方法相互对立时,是否有任何优点或缺点: first.js: this.myFunction = function() { return 'herro first'; } second.js: module.exports = obj = {}; obj.myFunction = function() { return 'herro second'; } 然后,将包括并使用上述两项: app.js: var first = require('./first.j

我想知道,当这两种方法相互对立时,是否有任何优点或缺点:

first.js:

this.myFunction = function() {
    return 'herro first';
}
second.js:

module.exports = obj = {};
obj.myFunction = function() {
    return 'herro second';
}
然后,将包括并使用上述两项:

app.js:

var first = require('./first.js');
console.log(first.myFunction());

var second = require('./second');
console.log(second.myFunction());

module.exports
(或只是
exports
)是标准的通用方式


在Node.js中,
这个
恰好是同一个对象,但最好不要依赖它,并且使用
这个
不会与其他工具一起工作,例如Browserify

这是导出函数而不是导入函数的两种截然不同的方法。覆盖
模块。导出
是一种反模式,特别是在不需要时。而是做
var obj=module.exports
(也是本地的)或者直接
module.exports.myFunction=…
。当使用
这个
在模块中工作时,
module.exports对每个人来说都更具声明性和清晰性。@Bergi你能解释一下反模式吗?这是一个实际的答案,ta!