2016-07-27 51 views
0

我想声明一个函数,它是一个IIFE以及命名函数,以便它被调用。我认为,我可以这样做:Javascript:功能是IIFE以及功能定义供以后使用

var callme = (function callme(msg) { 
    console.log(msg); 
    return callme; 
})('i am called'); 

上述函数将输出“我被称为”,因为IIFE。后来我可以这样称呼它:

callme('i m called again'); 

对此方法的任何评论?或者这可以通过其他方式实现?请给出意见。

+0

只是单独声明一个函数。然后调用它。你不需要IIFE。 – zerkms

+0

你想在这里做什么?这很大程度上依赖于此。 –

+2

看起来不必要的让我困惑。我会坚持一个简单的'函数callme(msg){} callme('我叫'')'。你想用标准定义不给你的IIFE来达到什么目的? – Rhumborl

回答

0

林不知道为什么你会开始执行它 - 你描述的心不是什么一个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"