【发布时间】:2015-02-19 06:52:42
【问题描述】:
导出对象{} vs 导出函数
我正在开发一个练习应用程序,遇到了一个问题我什么时候需要导出对象{}而不是函数类?
场景示例:
我正在使用对象样式构建一个简单的身份验证module。
// file auth.js
module.exports = {
login: function() {
// code login
},
logout: function() {
// code logout
},
register: function() {
// code register
}
}
这里我使用的是匿名函数风格
module.exports = function() {
return {
login: function() {
// code login
},
logout: function() {
// code logout
},
register: function() {
// code register
}
}
}
需要
当我想需要这个模块时,我会这样做:
var auth = require('auth');
auth.login(); // trigger login function via object
auth().login() // trigger login function via function
这两种方法都适用,但我很困惑选择哪种方法更合适以及为什么。
问题
您如何理解模块设计、何时适合导出、对象、匿名函数、要实例化的命名函数?
当需要这些 函数 或 对象 时,require 方法的行为有哪些不同?
【问题讨论】:
-
It will work with both the approaches,- 不会。要使第二种方法起作用,您需要执行var auth = require('auth')(); -
是的,对不起,你是对的,只是纠正了那个
标签: javascript node.js function object