我想声明一个函数,它是一个IIFE以及一个命名函数,以便调用它。我想,我可以通过以下方式做到这一点:
var callme = (function callme(msg) {
console.log(msg);
return callme;
})('i am called');
由于IIFE,上述功能将输出“我被叫”。后来我可以这样称呼它:
callme('i m called again');
对此有何评论?或者任何其他方式可以实现这一目标?请评论。
答案 0 :(得分:1)
我不确定你为什么最初会执行它 - 你描述的不是IIFE,它只是一个很好的老式功能
function callMe(msg){
console.log(msg);
}
callme("Hello"); // logs "Hello"
IIFE的目的可能是封装部分调用并返回函数指针
var callMe = (function(msgPrefix){
return function(msgSuffix){
console.log(msgPrefix + ' ' + msgSuffix);
}
})("Hello");
callMe("World")// logs "Hello world"