最近,我已经以一种很大的方式进入了Anonymous函数,并且想知道在尝试重新排列JS代码库时如何做到这一点。

(function (listLoad, $, undefined) {
    listLoad.create = function(data)
    {
        this.init = function(data)
        {
        }
    }
} (window.listLoad = window.listLoad || {}, jQuery));


我想做的显然是为“ listLoad”页面提供了许多功能,例如“ dataMap”等,其中全部都具有用于初始化页面的初始化功能。

我的主要问题是如何访问此.init函数?我猜这是私人范围。我试过了:

listLoad.create.init = function(data)




 create.init = function(data)


甚至init = function(data)

写作时一切都没有成功

listLoad.create.init();


这该怎么做?如果您觉得我的方案走错了方向,我也非常乐意听到有关体系结构的某些建议。

最佳答案

实际上,匿名函数的语法不完整。

首先,您必须执行带括号的匿名块:

(function (...) {
    ...
})(...)


在该块内部,可以通过以下方式改进您的代码:

var listLoad = {};

(function (x) {
    x.create = {
        init: function(data) {
            console.log('plop');
        }
    }
})(listLoad);


listLoad.create.init()


这会激发出出现在控制台中的状态。

09-25 17:37