在JavaScript中实现Revealing模块模式时,如何将参数传递给函数。我有一个像这样的模块
var GlobalModule = (function() {
function consoleLog(textToOutput) {
console.log(textToOutput);
}
return {
consoleLog: consoleLog()
};
})();
稍后,当我运行GlobalModule.consoleLog("Dummy text");
时,我会将undefined
作为输出。
答案 0 :(得分:3)
return {
consoleLog: consoleLog()
};
你的代码部分是错误的。 您正在导出consoleLog调用的Result,因为函数末尾的()是您要自行导出函数的位置。 所以只需删除函数调用:
return {
consoleLog: consoleLog
};
答案 1 :(得分:2)
在返回对象中使用函数
var GlobalModule = (function() {
return {
consoleLog: function(textToOutput)
{
console.log(textToOutput);
}
}
})();
GlobalModule.consoleLog("Dummy text");

简单地完成相同的输出。 object => function call
。不需要返回对象
var GlobalModule ={
consoleLog: function(textToOutput) {
console.log(textToOutput);
}
}
GlobalModule.consoleLog("Dummy text");

答案 2 :(得分:1)
更改行
consoleLog: consoleLog()
要
consoleLog: consoleLog
甚至(es6)到:
consoleLog
答案 3 :(得分:0)
你可以这样做
var GlobalModule = (function() {
function consoleLog(textToOutput) {
console.log(textToOutput);
}
return {
consoleLog: consoleLog // () is removed otherwise it will execute immediately
};
})();
GlobalModule.consoleLog('Hello')
您想传递一个全局变量,在IIFE的括号中传递它
var GlobalModule = (function(x) {
function consoleLog(textToOutput) {
console.log(textToOutput,x); // will log Hello temp
}
return {
consoleLog: consoleLog
};
})('temp');