日期:2014-05-16  浏览次数:20316 次

一段代码,希望有人帮忙解释一下
(function(){
    var jQuery = function() {
        // 函数体
    }
    jQuery.fn = jQuery.prototype = {
        // 扩展原型对象
        jquery: "1.8.3",
        test: function() {
            console.log('test');
        }
    }
    window.jQuery = window.$ = jQuery;
})();

(new jQuery()).test();

为什么要用一个()将function(){}括起来?

(function(){})后面为什么还要加()

window.jQuery = window.$ = jQuery;这个是什么,从右到左连续赋值?为什么没有变量符号?

------解决方案--------------------
1、匿名函数
2、window.$ = jQuery; window.jQuery=window.$;//不推荐这么写,不易于阅读
------解决方案--------------------
(function(){

})();
这个是匿名函数,马上执行。

window.jQuery = window.$ = jQuery;就是赋值,没有var就是全局变量啦。
------解决方案--------------------
(function(){

})();
使用匿名函数实现代码封装,后面的()表示立即执行
window.jQuery = window.$ = jQuery; 是将jQuery对象赋值给window.$和window.jQuery,表示可以通过$或者jQuery 调用匿名函数中定义的jQuery类