The function of anonymous functions is to create a closed area, outside can not access the variables and methods inside, here is a description of what is anonymous function and how to use
1. Overview of anonymous functions first recognition of anonymous functions or in the jquery source, open jquery first see the code as follows: (function (window, undefined) { .......................}) (window); This is an anonymous function, red as the parameter, the function of the anonymous function is to create a closed area, outside can not access the variables and methods inside. Since you can't access it, how can you invoke jquery? This is because the anonymous function of JQuery has two words (the blue Word): code as follows: (function (window, undefined) { //Define a local copy of Jquery&nbs P var jQuery = function (selector, context) { //The JQuery object is actually just the Init constructor ' enhanced ' &N Bsp Return to New JQuery.fn.init (selector, context); }, ......... window.jquery = window.$ = JQ uery; }) (window); passed the jquery to window in the anonymous function, which is why the pass of the parameter passes the window. So every call to jquery in the future is actually called the JQuery object for window. Call yourself inside the method by jquery. The outside is not callable, which guarantees security and does not conflict. 2. Then the above topic, about jquery plug-ins The following is a partial code for the pagination control I wrote: code as follows:;(function ($) { $.fn.tabing = function (ARG) { instance = new Plugin (this, arg); }; var instance = null; function Plugin (element) { This._tabs = $ (Element); This._tabli = $ ("a[href*= ' # ']", this. _tabs); this._tabdiv = This._tabs.siblings (). Filter ("div[id*= ' tab ')"; this.init (); Plugin.prototype = { init:function () { this._tabli.addclass ("unselected"); this._tabli.eq (0). AddClass ("selected"); this._tabdiv.css ("Display", "none"); This._tabdiv.eq (0). CSS ("Display", "block"); This._tabli.each (function () { $ (this). Bind ("click", Function () { for (var i = 0;i<instance._ tabdiv.length;i++) { Instance._tabdiv.eq (i). CSS ("display", "none"); } Instance._tabdiv.filter ("#" +$ (This). attr ("href"). Split (' # ') [1]). CSS ("Display", "Block"); }); } } }) ( jquery); Note the red word, in fact, the jquery plugin is also in the Write anonymous function, so as to ensure the independence of each plug-in, not called Plug-ins, Red Word $. Fn.tabing explains that there is a tabing in this plugin to the jquery fn, so the jquery object outside can call tabing directly, which is the only contact between the plugin and the outside world. 3. I'm done. The use of the jquery plugin for anonymous functions, say again WINdow anonymous functions In fact, jquery itself is the anonymous function of window, that is, 1th, how do we write the anonymous function of window? After writing an anonymous function, there is an interface in the function that interacts with the window, such as the following: code: (function () { function Getobjbyid (ID) { return document.getElementById (ID); } function __addclass (id,classname,classvalue) { $ (ID). style.classname=classvalue; } window.addclass=__addclass; }) (); is also looking at the red Word, This allows addclass () to be invoked outside the anonymous function, but cannot invoke Getobjbyid (). 4. Anonymous functions are also executed at parse time The following: code as follows: function video () {}; function Movie () {}; var _video = new Video (); _video.size = 3; _video.tostring = function () { return "video"; P _video.getname = function () { return "videoxxx"; }; var _movie = new Movie (); (function (parent, Child) { for (var ele in parent) { if (!child[ele)///When the child does not contain the property or method, a copy of parent Child[ele] = par ent[ele]; } }) (_video, _movie); How anonymous functions are called aleRT (_movie.size); 3 alert (_movie.tostring ()); [Object object] Alert (_movie.getname ()); videoxxx