JavaScript模块模式以两种不同的方式编写,结果相同

时间:2015-08-24 20:19:24

标签: javascript

我一直在使用JavaScript开发一个应用程序,我的所有脚本都在使用模块模式。例如:

function fillTable(oJSON) {
    $("#theTable").append(
        $('<tr />').append(
             $('<td />').text(oJSON.main.temp),
             $('<td />').text(oJSON.main.description)
        )
     );
}

$(document).ready(function () {
    jQuery.ajax({
        url: "http://api.openweathermap.org/data/2.5/weather?q={Zwolle}",
        type: "GET",
        success: function (oJSON) {
            fillTable(oJSON);
        },
        error: function (jqXHR, textStatus, errorThrown) {},
        timeout: 120000,
    });
});

我看到有人在call()中放置了函数的名称。例如:

              var MyFunction = (function(){


             }());

我将此添加到我的某些页面,它仍然正常运行。任何人都可以解释为什么它会用()?

中的函数名写

1 个答案:

答案 0 :(得分:2)

  

任何人都可以解释为什么会用它的名字写   ()?

内的函数

没有。那个程序员并不清楚他们在做什么。 (当有人不打算破解工作代码时,很多时候会留下来)

也就是说,某些情况会将某些传递给IIFE,例如windowjquery。不过,你将其视为内部的论据。