IIFE总是返回undefined吗?

时间:2016-04-12 22:33:44

标签: javascript

在下面的代码中,为什么变量foo的内容未定义?我期待我们的IIFE声明回归一些东西!

var foo = (function (){
    var a=8;
    console.log("hi");
})();

1 个答案:

答案 0 :(得分:6)

您正在调用的表达式内部的函数未返回任何值,因此这是未定义foo的原因。如果它返回了一个值,那么foo将包含该值。

var foo = (function(){
    var a = 8;
    console.log("hello");
    return "world";
})()
console.log(foo);//world