什么是MooTools Javascript中的(函数($))

Rob*_*und 1 javascript mootools

我正在阅读David Walsh关于使用MooTools创建精灵菜单的帖子.我是MooTools的新手,我不明白他打开剧本的方式.特别是,是什么

(function($){
..
})(document.id)
Run Code Online (Sandbox Code Playgroud)

它是一种JS闭包吗?

如果您不想关注该链接,请参阅完整脚本:

(function($) {
    window.addEvent('domready',function() {
    $('nav').getElements('li').each(function(li) {
        //settings
        var link = li.getFirst('a');
        //fix background image
        if(!li.hasClass('current')) {
            link.setStyle('background-image','none');
        }
        //utility div
        var div = new Element('div',{
            'class': 'nav-' + li.get('id'),
            opacity: 0
        }).inject(li);
        //background imagery
        li.addEvents({
            mouseenter: function() {
                div.fade('in');
            },
            mouseleave: function() {
                div.fade('out');
            },
            mousedown: function() {
                div.addClass('nav-' + li.get('id') + '-click');
            },
            mouseup: function() {
                div.removeClass('nav-' + li.get('id') + '-click');
            }
        });
    });
});
})(document.id);
Run Code Online (Sandbox Code Playgroud)

Wil*_*iam 5

(function($){
..
})(document.id)
Run Code Online (Sandbox Code Playgroud)

如果将函数放在inside()中,JavaScript将自动执行该函数.通过添加(document.id),他还将参数传递给该函数.例如..

(function(message){
    alert(message);
})( 'Hello World!' );
Run Code Online (Sandbox Code Playgroud)

会警告Hello World!