javascript立即函数初始化

时间:2014-04-19 19:28:42

标签: javascript

在下面的代码中,我的return函数在另一个函数中并没有立即运行,但第一个函数是。我的目标是让整个功能立即运行。

var windowCheck = (function () {
                    var switcher = false;
                    return function () {
                        console.log(switcher);
                        if ($window.innerWidth > 480) {
                            if (!switcher) {
                                element.perfectScrollbar({
                                    wheelSpeed: scope.wheelSpeed || 50,
                                    wheelPropagation: $parse(attrs.wheelPropagation)() || false,
                                    minScrollbarLength: $parse(attrs.minScrollbarLength)() || false
                                });
                                console.log('Plugin On');
                                switcher = true;
                            }

                        }
                        else {
                            if (switcher) {
                                console.log('Plugin Off');
                                element.perfectScrollbar('destroy');
                                switcher = false;
                            }
                        }
                    };
                }());

3 个答案:

答案 0 :(得分:1)

该功能确实第一次运行 - 运行匿名功能,结果是 -

另一个功能!

这第二个'然后将函数分配给windowCheck

的值

并且windowCheck一直运行直到被叫。

答案 1 :(得分:0)

在定义它之后简单地运行它并避免所有匿名函数混乱:

var windowCheck = function() {
    ...
}
windowCheck();

答案 2 :(得分:0)

现在的代码现在定义了windowCheck函数,并使用闭包来存放私有switcher变量。这一切都很好。如果您希望执行定义的函数,那么您只需将其添加到已有的函数的末尾:

windowCheck();

以便立即实际执行。