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

JavaScript及jQuery学习笔记(2)

阅读更多
最后更新日:2014年11月17日
下面对整体外层的(function(window){})(window);进行改造。看下function(window){}中的window。jquery源码中写为:function(global,factory){},我们打印出来可以看到global就是window对象,factory为undefined,因为我没有第二个参数(不明白我说的是什么意思?没关系,继续看下去就明白了。),如果你再给他加其它参数,往后打印出来的都是undefined。在jquery之前的版本写为:
(function(window,undefined){}(window))。
<html>
<head>
<script>
function test(){
	$("#v").say();	
};

(function (global,factory){
	/*
	此处小弟没什么经验,不明白为什么要做这些判断,总之就是调用了function(window[,noGlobal])方法。
	在下个代码片段中将举个例子具体说明下。
	*/
	if ( typeof module === "object" && typeof module.exports === "object" ) {
		module.exports = global.document ?
			factory( global, true ) :
			function( w ) {
				if ( !w.document ) {
					throw new Error( "jQuery requires a window with a document" );
				}
				return factory( w );
			};
	} else {
		factory( global );
	}
	
})(typeof window!=="undefined"?window:this,function(window, noGlobal){
	//这里照着jquery的源码,我把原来在上面的搬到下面了,是一样的
	var test = (function(){

		var t = function(id){
			return new test.n.o(id);
		};

		t.n = t.prototype = {
			o   : function(id){
				return {
					say : function(){
						var change = document.getElementById(id.substring(1,id.length));
						change.innerHTML = "我是未来";
						change.style.width = "100%";
						change.style.height = "100%";
						change.style.fontSize = "100px";
						change.style.backgroundColor = "yellow";
					}
				};
			}
		
		};

		return t;
	}());

	window.$ = window.jquery = test;
});
</script>
<style type="text/css">
div{
	background-color:red;
	width:20%;
	height:20%;
}
</style>
</head>
<body>
	<div id="v" onclick="test()">请在此区域内点击我</div>
</body>
</html>


下面举个例子,说明下,为什么和之前的效果是一样的:
<!DOCTYPE html>
<html>
<head>
<script>
(function (x,y){
	console.log(x);//输出window对象
	console.log(y);//输出 function(a,b){//TODO}
})(window,function(a,b){
	//TODO
});
</script>
</head>
<body>
</body>
</html>


看到了吗?!x就对应着window,y就对应着闭包function(a,b){}。我要执行这个闭包不就只要y(a,b)就可以了吗!!!
再看下面的示例:
<!DOCTYPE html>
<html>
<head>
<script>
(function (x,y){
	if(y!=undefined){
		y(3,7);
	}else{
		console.log("从这个示例来看,不会执行到我");
	}
})(window,function(a,b){
	console.log(a+b);
});
</script>
</head>
<body>
</body>
</html>

OK!!!至此,以后我们只要把重点全部放在function(window, noGlobal){...}里面就可以了,你自己可以看看jquery的源码万把行都是写在这里面的。
分享到:
评论

相关推荐

    javascript and jquery学习笔记与资料

    这里,我们有针对这两个主题的学习笔记和参考资料,包括JavaScript培训、jQuery API、JavaScript基础、函数详解以及jQuery使用手册等内容。让我们逐一探讨这些知识点。 首先,`JavaScript培训.zip`可能包含的是对...

    javascript和jquery学习笔记

    javascript和jquery的学习笔记,自己做的大家可以下载浏览,很不错

    JavaScript及jQuery学习笔记(0)

    这篇学习笔记将探讨这两个技术的基础和关键概念。 首先,JavaScript是一种轻量级的脚本语言,它主要在客户端运行,允许网页对用户交互做出实时响应。JavaScript的核心特性包括变量、数据类型(如字符串、数字、布尔...

    Jquery学习笔记Jquery学习笔记

    Jquery学习笔记是指使用Jquery框架来实现javascript编程的笔记记录,本笔记记录了Jquery-1.2的基本用法、Ajax异步交互、XMLHttpRequest对象的基本应用等知识点。 一、Jquery基本用法 Jquery是一个javascript框架,...

    javascript-jquery学习笔记.docx

    总的来说,JavaScript 和 jQuery 的学习涵盖了变量、数据类型、控制结构、DOM 操作和事件处理等多个方面,是 web 开发的基础。理解并熟练掌握这些知识点,能够帮助开发者构建功能丰富、交互性强的网页应用。

    jQuery学习笔记(一)

    **jQuery学习笔记(一)** 在深入探讨jQuery之前,我们首先要理解什么是jQuery。jQuery是一个高效、易用且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务。由John Resig在2006...

    韩顺平jquery学习笔记及练习

    《韩顺平jQuery学习笔记及练习》是一份珍贵的学习资源,由知名讲师韩顺平的课程实录整理而成,旨在帮助学习者深入理解和掌握jQuery这一强大的JavaScript库。jQuery简化了HTML文档遍历、事件处理、动画设计和Ajax交互...

    jquery 学习笔记总结

    **jQuery 学习笔记总结** jQuery 是一个广泛使用的 JavaScript 库,它简化了网页文档对象模型(DOM)操作、事件处理、动画制作以及Ajax交互。本篇笔记将深入探讨 jQuery 的核心概念,包括选择器、常用方法以及在...

    jquery 学习笔记

    **jQuery学习笔记** jQuery,作为一个轻量级的JavaScript库,极大地简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。这篇学习笔记将深入探讨jQuery的核心概念和实用技巧,帮助初学者快速上手。 ## 一...

    JQuery学习笔记

    以下是对JQuery学习笔记的详细解析: 首先,JQuery的出现是为了弥补JavaScript在处理浏览器兼容性和控件操作上的不足。不同浏览器对JavaScript的实现存在差异,导致开发跨浏览器的网页应用变得复杂。为了统一这些...

    jquery学习笔记.rar

    《jQuery学习笔记详解》 jQuery,作为一款广泛应用于前端开发的JavaScript库,因其简洁的语法和强大的功能,深受开发者喜爱。这份"jQuery学习笔记.rar"包含的资源旨在帮助你全面掌握jQuery,无论你是初学者还是有...

    js&jquery;学习笔记

    这份"js&jquery学习笔记"应该包含对这些概念的详细解释,以及示例代码和练习,帮助读者理解和掌握这两种技术。对于初学者来说,这是一份宝贵的资源,能够快速上手JavaScript和jQuery,提升Web开发技能。

    JQuery学习笔记合集

    **jQuery学习笔记合集概述** jQuery是一个广泛应用于前端开发的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作以及Ajax交互等任务。这个"JQuery学习笔记合集"包含了三个部分,旨在帮助开发者从初级到高级...

    Ajax和jQuery学习笔记

    ### Ajax和jQuery学习笔记 #### 一、Ajax基础与原理 **1.1 什么是Ajax?** Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种用来创建快速动态网页的技术,通过在后台与服务器进行少量数据...

    jQuery学习笔记 jQuery API

    **jQuery学习笔记 jQuery API** jQuery,作为一款广泛使用的JavaScript库,极大地简化了DOM操作、事件处理、动画制作和Ajax交互。本笔记旨在帮助开发者快速上手并深入理解jQuery的核心概念和API。 ### 1. jQuery...

    JQUERY学习笔记2

    ### JQUERY学习笔记2:深度解析与应用实例 在深入探讨jQuery的学习笔记中,我们将重点关注几个核心概念和功能,这些是任何希望掌握jQuery框架的开发者都必须了解的基础知识。通过以下详细解析,我们不仅能够理解...

    JQuery学习笔记(技术文档)

    ### JQuery学习笔记(技术文档) #### 一、JQuery能做什么? JQuery 是一款轻量级的 JavaScript 库,它的设计宗旨是“write less, do more”,即“写得更少,做得更多”。通过JQuery,可以实现以下功能: 1. **...

    Jquery学习笔记分享

    **jQuery学习笔记分享** 在Web开发中,jQuery是一个非常重要的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。本文将深入探讨jQuery的基本概念、核心功能以及常见用法。 ### 第1章:...

    锋利的jQuery学习笔记

    《锋利的jQuery学习笔记》是一份深入探讨jQuery框架的学习资料,主要针对想要掌握JavaScript库jQuery的开发者。jQuery是一款高效、简洁的JavaScript库,它极大地简化了JavaScript代码的编写,使得DOM操作、事件处理...

Global site tag (gtag.js) - Google Analytics