我的查询:
如何区分所需的模块中是否包含参数?
详细信息:
我已经编写了一个模块,该模块将用彩色控制台消息(作为参数传递)。如果没有通过,则选择默认颜色(例如白色)。
require('my-module'); //should print 'Hello World' in white (default) color.
require('my-module')('red'); //should print 'Hello World' in red color.
文件内容(my-module.js):
// First Call
displayMessage('');
module.exports = function(color){
// Second Call
displayMessage(color);
}
// Main function
function displayMessage(clr){
... console in provided clr
}
[require('my-module')仅使用默认颜色进行首次调用。
这两个调用均发生在[[require('my-module')('red')] >>中,一次不使用/默认值,接下来一次使用红色参数。
module.exports = function(){
// First Call
displayMessage('');
}
在上根本没有调用。require('my-module')
如果我可以得到一个区分两个调用的指标,则可能可以相应地添加条件。
我的查询:如何区分所需的模块中是否包含参数?详细信息:我编写了一个模块,该模块将以彩色(作为参数传递)来管理消息。如果...
module.exports = function() {
// First Call
displayMessage('');
}
module.exports = function(color){
// Second Call
displayMessage(color);
}
// Main function
function displayMessage(clr){
... console in provided clr
}
编辑:
根据注释,不可能从各处调用无参数构造函数。因此,您需要确定带有一个标志。
var argCall = false; module.exports = function(color) { // Second Call argCall = true; displayMessage(color); } if (!argCall) { // First Call displayMessage(''); } // Main function function displayMessage(clr){ ... console in provided clr }
现在它无需呼叫就可以使用,
require('my-module') // will go through FIRST CALL
require('my-module')('red') // will go with SECOND CALL only