`
somebody_hjh
  • 浏览: 182315 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jquery中window=this不简单

阅读更多
(function(){

    var
    // Will speed up references to window, and allows munging its name.
    window = this,
    // Will speed up references to undefined, and allows munging its name.
    undefined,
    // Map over jQuery in case of overwrite
    _jQuery = window.jQuery,
    // Map over the $ in case of overwrite
    _$ = window.$,

    jQuery = window.jQuery = window.$ = function( selector, context ) {
        // The jQuery object is actually just the init constructor 'enhanced'
        return new jQuery.fn.init( selector, context );
    },..............

jQuery源码中,var window=this ,注释中注明了代码的主要作用是提高效率。
这里有两个问题:
1)函数体中的this是什么值?
2)效率是怎么提升的?


1、要了解第一个问题很容易,在程序中打出this的值,发现打印出来this的结果是[object DOMWindow]。也就是这里的局部变量被赋值为的window对象的引用。函数中this的引用到底指向谁?
关于this,推荐一篇博文:http://www.cnblogs.com/ruxpinsp1/archive/2008/04/20/1162463.html

2、要理解怎么提高效率,首先要了解在javascript中不存在“块级作用域”,变量求值都是通过“作用域链”来进行的。我们常常提到的闭包也是由作用域链为基础的。
关于块级作用域用一下代码说明:
function doSomething(){
	var a=1;
	for(var i=0;i<10;i++){
		a++;
	}
	alert(a);
	alert("循环块中的变量i:"+i);
}

在java类似的语言中,i的作用域只限于for循环体内。而js里面,i的作用域在整个函数体。不存在块级的作用域。这里作者利用了减少作用域链的长度,减少查找,来提高效率。







分享到:
评论

相关推荐

    jquery 教程 详细解释了jquery的使用方法

    This is my jquery page. ``` 在这个例子中,当页面DOM准备就绪时,会弹出“hello world”的提示框。 `$(document).ready()`与`window.onload()`的区别在于: a. 执行时机:`window.onload()`等待整个页面包括...

    jquery学习手册,30分钟入门

    在JavaScript中处理DOM元素时,常常需要编写大量的循环和DOM操作,这在jQuery中变得非常简单。比如,如果要给页面中id为'external_links'的区域内的所有链接添加点击事件,传统的JavaScript实现(清单1)会涉及多行...

    jQuery详细教程

    您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中: $(document).ready(function(){ --- jQuery functions go here ---- }); 这是为了防止文档在完全加载(就绪)之前运行 jQuery...

    jquery简单图片切换

    在这个“jQuery 简单图片切换”的实例中,我们将探讨如何利用jQuery实现这一功能。 首先,我们需要引入jQuery库。这通常通过在HTML文档的`&lt;head&gt;`部分添加以下代码来完成: ```html &lt;script src=...

    ecshop和jquery冲突的解决方法

    在本篇文章中,我们将深入探讨如何有效解决ecshop与jQuery之间的冲突问题,并提供一系列实用的解决方案,帮助开发者更好地处理这两种技术共存时可能遇到的问题。 ### 一、Ecshop简介 Ecshop是一款开源的电子商务...

    用jquery实现整屏滚动

    在本教程中,我们将重点讨论如何利用jQuery这一强大的JavaScript库来实现这一功能。jQuery简化了JavaScript的DOM操作,动画效果以及事件处理,使得整屏滚动的实现变得更加简单。 首先,我们需要理解整屏滚动的基本...

    jquery自定义插件命名空间问题

    一个简单的jQuery插件通常会定义一个函数,该函数接受jQuery对象作为参数,并在内部使用`this`关键字来引用选中的元素。例如: ```javascript (function($) { $.fn.myPlugin = function(options) { // 插件代码 ...

    jQuery实现动态更改table表格数据

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和Ajax交互。本教程将深入探讨如何使用jQuery实现动态更改table表格数据,让你的网页表格具有实时编辑功能,提升用户体验。 ...

    jQuery实现表头固定表格内容滚动效果

    但需要注意的是,虽然`jQuery`简化了开发过程,但在现代Web开发中,我们也可以考虑使用原生的JavaScript方法或更现代的库,如`React`、`Vue`等,它们提供了更高效和灵活的方式来处理这类问题。 总之,通过`jQuery`...

    jQuery炫酷实例

    jQuery UI库提供了完善的拖放功能,但即使不依赖这个库,我们也可以手动实现。首先,通过`mousedown`事件开始拖动,记录初始位置;然后在`mousemove`事件中计算移动距离并更新元素位置;最后,使用`mouseup`事件结束...

    jquery气泡悬浮框.

    在IT行业中,jQuery是一款非常流行的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计和Ajax交互。在本教程中,我们将深入探讨如何使用jQuery实现气泡悬浮框的功能,这是一种常见的用户界面...

    Vue项目中使用jquery的简单方法

    在Vue项目中,有时我们可能需要借助jQuery来处理一些复杂或特定的DOM操作,尤其是在MVVM框架不擅长的领域。本文将详细介绍如何在Vue项目中有效地集成和使用jQuery。 首先,确保你的Vue项目已经安装了jQuery。在Vue ...

    jquery 弹窗插件weebox

    在大型项目中,为提高性能,可以利用jQuery的文档就绪事件(`$(document).ready()`)或延迟加载(`$(window).load()`)确保在DOM完全加载后再初始化Weebox。 ### 结论 jQuery弹窗插件Weebox以其简洁的API和良好的...

    jQuery图片灯箱预览效果.zip

    本文将深入探讨如何利用jQuery实现这一功能,并结合“jQuery图片灯箱预览效果.zip”中的示例进行详细解析。 一、jQuery基础 首先,我们需要了解jQuery的基本概念。jQuery是一个轻量级的JavaScript库,它的目标是...

    jquery 浮动导航菜单

    在网页设计中,导航菜单是不可或缺的部分,它帮助用户轻松浏览网站内容。jQuery 是一个流行的 JavaScript 库,提供了丰富的功能和简洁的语法,使得创建动态交互的浮动导航菜单变得非常简单。本文将深入探讨如何利用 ...

    jquery漂浮客服代码,支持左右漂浮

    在这个项目中,jQuery被用来处理页面元素的动态行为,特别是实现客服对话框的漂浮效果。该代码支持左右两侧的漂浮,这意味着开发者可以根据网站布局和设计选择最适合的位置。 首先,我们需要在页面中引入jQuery库。...

    瀑布流 bootstrap jQuery

    jQuery 的目标是使用户的 JavaScript 编程变得更加简单,通过封装 AJAX 函数、提供强大的选择器引擎以及简便的动画效果,大大减少了开发时间。 瀑布流布局在 Bootstrap 中实现,通常需要借助第三方插件或自定义 ...

    <jQuery>导航的滚动锚点

    在jQuery库的支持下,实现滚动锚点变得更加简单高效。本文将深入探讨如何使用jQuery来创建一个功能完备的滚动锚点系统。 首先,我们需要理解什么是滚动锚点。滚动锚点是一种HTML技术,通过在HTML元素上设置`id`属性...

    JQuery插件-JQuery的几个精典应用实例

    **jQuery是JavaScript库中的佼佼者,以其简洁的API和强大的功能深受开发者喜爱。本教程将探讨几个jQuery的精彩应用实例,包括菜单设计、文件上传、树形结构、表单验证以及滑动效果,帮助你深入理解并熟练运用jQuery...

    jquery固定表格行列

    首先,确保在项目中引入jQuery库,可以使用CDN链接或者下载到本地引入。例如: ```html &lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"&gt;&lt;/script&gt; ``` 接下来,我们需要一个包含表头和表体的HTML结构...

Global site tag (gtag.js) - Google Analytics