关于js立即执行函数

   var obj = function () { 
        var a = {
            publicMethod: function () {
                console.log("Self Function");
            }
        };

        console.log("Test");
    }(); 

    console.log(obj);//undefine??
    为什么这里是undefine??
阅读 3.2k
2 个回答

obj的值是function的返回值,由于你的function没有明确指定返回值,所以相当于在 console.log("Test"); 下有return; 因此 obj 的值为 undefine。

V8君(JS Runtime)一看到var声明变量加赋值,马上开始执行,结果一看=后面,这TM赋的是个啥值啊?立即执行函数啊?没办法 先执行了这个立即执行函数吧!执行完毕,但这函数啥都没返回,并没有什么卵用嘛!擦!还是不知道这SB人类到底要赋啥值。算了,undefine吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题