将参数传递到 Javascript 中的揭示模块模式
Passing arguments into the revealing Module pattern in Javascript
在 JavaScript 中实现 Revealing 模块模式时如何将参数传递给函数。我有一个这样的模块
var GlobalModule = (function() {
function consoleLog(textToOutput) {
console.log(textToOutput);
}
return {
consoleLog: consoleLog()
};
})();
稍后,当我 运行 GlobalModule.consoleLog("Dummy text");
时,我得到 undefined
作为输出。
在 return 对象中使用函数
var GlobalModule = (function() {
return {
consoleLog: function(textToOutput)
{
console.log(textToOutput);
}
}
})();
GlobalModule.consoleLog("Dummy text");
只需像这样实现相同的输出。 object => function call
。不需要 return 对象
var GlobalModule ={
consoleLog: function(textToOutput) {
console.log(textToOutput);
}
}
GlobalModule.consoleLog("Dummy text");
换行
consoleLog: consoleLog()
到
consoleLog: consoleLog
甚至(es6)到:
consoleLog
return {
consoleLog: consoleLog()
};
你的那部分代码是错误的。
由于函数末尾的 (),您正在导出 consoleLog 调用的结果,您希望在其中导出函数本身。
所以只需删除函数调用:
return {
consoleLog: consoleLog
};
你可以这样做
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');
在 JavaScript 中实现 Revealing 模块模式时如何将参数传递给函数。我有一个这样的模块
var GlobalModule = (function() {
function consoleLog(textToOutput) {
console.log(textToOutput);
}
return {
consoleLog: consoleLog()
};
})();
稍后,当我 运行 GlobalModule.consoleLog("Dummy text");
时,我得到 undefined
作为输出。
在 return 对象中使用函数
var GlobalModule = (function() {
return {
consoleLog: function(textToOutput)
{
console.log(textToOutput);
}
}
})();
GlobalModule.consoleLog("Dummy text");
只需像这样实现相同的输出。 object => function call
。不需要 return 对象
var GlobalModule ={
consoleLog: function(textToOutput) {
console.log(textToOutput);
}
}
GlobalModule.consoleLog("Dummy text");
换行
consoleLog: consoleLog()
到
consoleLog: consoleLog
甚至(es6)到:
consoleLog
return {
consoleLog: consoleLog()
};
你的那部分代码是错误的。 由于函数末尾的 (),您正在导出 consoleLog 调用的结果,您希望在其中导出函数本身。 所以只需删除函数调用:
return {
consoleLog: consoleLog
};
你可以这样做
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');