重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
(function( window, undefined ) {
创新互联于2013年创立,是专业互联网技术服务公司,拥有项目成都做网站、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元沙依巴克做网站,已为上家服务,为沙依巴克各地企业和个人服务,联系电话:13518219792
// Use the correct document accordingly with window argument (sandbox)
var document = window.document,
navigator = window.navigator,
location = window.location;
var jQuery = (function() { //第一个jQuery的作用是什么呢?是要给外面用的jQuery对象
// Define a local copy of jQuery
var jQuery = function( ) { //为什么又要一个jQuery?这是一个局部变量
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( ); //怎么才能保证程序执行这个代码呢?顺序执行下来就会执行这个代码
},
//...
;
jQuery.fn = jQuery.prototype = {
constructor: jQuery,
init: function( selector, context, rootjQuery ) {
//...
return jQuery.makeArray( selector, this );
},
//...
};
// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn; //这段代码的作用是什么呢?为以后的实例准备jQuery原型构造函数
//jQuery.fn.init 是构造函数, 它的实例方法由 jQuery.fn.init.prototype 指定
//...很多函数
return jQuery; //为什么要增加一个返回值呢?为了把局部变量复制给外面的全局变量
})();
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
})(window);
闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
扩展资料:
闭包包含自由(未绑定到特定对象)变量;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。
"闭包" 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。在PHP、Scala、Scheme、Common Lisp、Smalltalk、Groovy、JavaScript、Ruby、 Python、Go、Lua、objective c、swift 以及Java(Java8及以上)等语言中都能找到对闭包不同程度的支持。
(1)jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等。
(2)jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等。
在运用中会有闭包, 由于函数内部定义变量作用域问题,如果外部想用这个内部函数创建的一个变量;那就需要在这个函数内部在创建一个函数,创建的这个函数相当于一个桥梁把内部外部函数的变量抛出,这样就解决了不能访问这个变量的问题,那这个内部函数就称为闭包。
其具体特性如下:
a.函数内再嵌套函数
b.内部函数可以引用外层的参数和变量
c.参数和变量不会被垃圾回收机制回收
概括的说,闭包就是能够读取其他函数内部变量的函数,在本质上,它是将函数内部和函数外部连接起来的一座桥梁。