问答详情
源自:1-5 立即调用表达式

请教老师,下面的自执行函数怎么解释?我有点看不懂

我在网上看到这样一段代码,函数体省去了很多内容,这应该是一个自执行匿名函数

var F = function(e) {

    "use strict";

     ...

     return e

} (F || {});

括号里面的 F || {}是什么意识?请老师指教,谢谢!!!

提问者:mkwjpm 2014-12-14 21:55

个回答

  • MrzHuo
    2014-12-24 10:06:59

    var F = function (e) {

        "use strict";  //这行是定义此函数使用的是js严格模式

        

        ...  //中间代码应该是对e进行扩展, 类似 e.newFunction = function () {};


        return e;   //返回已经拓展好的e对象
    }(F || {});  //函数自执行, F || {}是短路使用, 如果F存在 e == F, 如果不存在 e == {}


    /*

     这样的主要目的就是扩展F这个对象, 如果已经存在F对象了, 就对F对象进行扩展

     如果不存在F对象, 就是新建一个对象, 命名为F

     防止直接声明F对象, 覆盖了之前声明F的部分

     */


  • 艾伦Aaron
    2014-12-16 16:29:26

    就这个代码而言 就是 var F = function(e) {}本身

  • mkwjpm
    2014-12-15 21:20:48

    谢谢!我还是不清楚, (F || {})这里的 F 是随便给的还是上面的指 var F = function(e) {}中 F ?

  • 艾伦Aaron
    2014-12-15 12:14:30

    传递一个默认值,让内部代码不会报错。或者是兼容扩展