成都创新互联网站制作重庆分公司

jquery闭包,jq闭包函数

关于jQuery核心闭包的问题!!!

(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);

JS闭包的概念

闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

扩展资料:

闭包包含自由(未绑定到特定对象)变量;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。

"闭包" 一词来源于以下两者的结合:要执行的代码块(由于自由变量被包含在代码块中,这些自由变量以及它们引用的对象没有被释放)和为自由变量提供绑定的计算环境(作用域)。在PHP、Scala、Scheme、Common Lisp、Smalltalk、Groovy、JavaScript、Ruby、 Python、Go、Lua、objective c、swift 以及Java(Java8及以上)等语言中都能找到对闭包不同程度的支持。

jQuery与jQuery UI有啥区别?

(1)jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等。

(2)jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等。

在运用中会有闭包, 由于函数内部定义变量作用域问题,如果外部想用这个内部函数创建的一个变量;那就需要在这个函数内部在创建一个函数,创建的这个函数相当于一个桥梁把内部外部函数的变量抛出,这样就解决了不能访问这个变量的问题,那这个内部函数就称为闭包。

其具体特性如下:

a.函数内再嵌套函数

b.内部函数可以引用外层的参数和变量

c.参数和变量不会被垃圾回收机制回收

概括的说,闭包就是能够读取其他函数内部变量的函数,在本质上,它是将函数内部和函数外部连接起来的一座桥梁。


分享名称:jquery闭包,jq闭包函数
文章转载:http://cxhlcq.com/article/dssodde.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部