javascript语法问题

(function($){
    $.parser = {
        auto: true,
        plugins:['linkbutton','menu','menubutton','splitbutton','layout',
                 'tree','window','dialog','datagrid',
                 'combobox','combotree','numberbox','validatebox',
                 'calendar','datebox','panel','tabs','accordion'
        ],
        parse: function(context){
            if ($.parser.auto){
                for(var i=0; i<$.parser.plugins.length; i++){
                    (function(){
                        var name = $.parser.plugins[i];
                        var r = $('.easyui-' + name, context);
                        if (r.length){
                            if (r[name]){
                                r[name]();
                            } else if (window.easyloader){
                                easyloader.load(name, function(){
                                    r[name]();
                                })
                            }
                        }
                    })();
                }
            }
        }
    };
    $(function(){
        $.parser.parse();
    });
})(jQuery);

 初学js 24行函数最后的“()”在语法上是什么意思,最后一行的“(jQuery)”在语法上又是什么意思,前边括号中的大段内容又是什么意思呢。

开发jQuery插件?
实为匿名函数:
[code="js"]

//格式:
(function($){})(jquery)

//立即执行函数;相当于先申明一个函数,声明完后直接调用;
(funtion(){})();

//如果参数如:
(funtion(str){})("output"));
//相当于:
funtion OutPutFun(str){};
OutPutFun("output");

[/code]

找个这个格式,google一下,应该可以找到你想要的东西!

这样来理解一下:
[code="java"]
1.function A(){}
2.var A = function(){}
3.function(){}
[/code]

1.常规定义js方法。
2.先定义方法赋值给A
3.定义匿名方法。

注意:定义方法就是一个函数,有函数地址,那么function(){}分配了一个地址addr。

无论是1还是2方法,其都是先得到addr,然后将addr => A.即将A指向addr

所以这了的function(){}匿名方法就是一个地址。

再来看(function(){})();

这就相当于(addr)(); 而(addr) = A
所以这样就相当与A();就运行起来了。