最后更新日: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培训、jQuery API、JavaScript基础、函数详解以及jQuery使用手册等内容。让我们逐一探讨这些知识点。 首先,`JavaScript培训.zip`可能包含的是对...
javascript和jquery的学习笔记,自己做的大家可以下载浏览,很不错
这篇学习笔记将探讨这两个技术的基础和关键概念。 首先,JavaScript是一种轻量级的脚本语言,它主要在客户端运行,允许网页对用户交互做出实时响应。JavaScript的核心特性包括变量、数据类型(如字符串、数字、布尔...
Jquery学习笔记是指使用Jquery框架来实现javascript编程的笔记记录,本笔记记录了Jquery-1.2的基本用法、Ajax异步交互、XMLHttpRequest对象的基本应用等知识点。 一、Jquery基本用法 Jquery是一个javascript框架,...
总的来说,JavaScript 和 jQuery 的学习涵盖了变量、数据类型、控制结构、DOM 操作和事件处理等多个方面,是 web 开发的基础。理解并熟练掌握这些知识点,能够帮助开发者构建功能丰富、交互性强的网页应用。
**jQuery学习笔记(一)** 在深入探讨jQuery之前,我们首先要理解什么是jQuery。jQuery是一个高效、易用且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务。由John Resig在2006...
《韩顺平jQuery学习笔记及练习》是一份珍贵的学习资源,由知名讲师韩顺平的课程实录整理而成,旨在帮助学习者深入理解和掌握jQuery这一强大的JavaScript库。jQuery简化了HTML文档遍历、事件处理、动画设计和Ajax交互...
**jQuery 学习笔记总结** jQuery 是一个广泛使用的 JavaScript 库,它简化了网页文档对象模型(DOM)操作、事件处理、动画制作以及Ajax交互。本篇笔记将深入探讨 jQuery 的核心概念,包括选择器、常用方法以及在...
**jQuery学习笔记** jQuery,作为一个轻量级的JavaScript库,极大地简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。这篇学习笔记将深入探讨jQuery的核心概念和实用技巧,帮助初学者快速上手。 ## 一...
以下是对JQuery学习笔记的详细解析: 首先,JQuery的出现是为了弥补JavaScript在处理浏览器兼容性和控件操作上的不足。不同浏览器对JavaScript的实现存在差异,导致开发跨浏览器的网页应用变得复杂。为了统一这些...
《jQuery学习笔记详解》 jQuery,作为一款广泛应用于前端开发的JavaScript库,因其简洁的语法和强大的功能,深受开发者喜爱。这份"jQuery学习笔记.rar"包含的资源旨在帮助你全面掌握jQuery,无论你是初学者还是有...
这份"js&jquery学习笔记"应该包含对这些概念的详细解释,以及示例代码和练习,帮助读者理解和掌握这两种技术。对于初学者来说,这是一份宝贵的资源,能够快速上手JavaScript和jQuery,提升Web开发技能。
**jQuery学习笔记合集概述** jQuery是一个广泛应用于前端开发的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作以及Ajax交互等任务。这个"JQuery学习笔记合集"包含了三个部分,旨在帮助开发者从初级到高级...
### Ajax和jQuery学习笔记 #### 一、Ajax基础与原理 **1.1 什么是Ajax?** Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种用来创建快速动态网页的技术,通过在后台与服务器进行少量数据...
**jQuery学习笔记 jQuery API** jQuery,作为一款广泛使用的JavaScript库,极大地简化了DOM操作、事件处理、动画制作和Ajax交互。本笔记旨在帮助开发者快速上手并深入理解jQuery的核心概念和API。 ### 1. jQuery...
### JQUERY学习笔记2:深度解析与应用实例 在深入探讨jQuery的学习笔记中,我们将重点关注几个核心概念和功能,这些是任何希望掌握jQuery框架的开发者都必须了解的基础知识。通过以下详细解析,我们不仅能够理解...
### JQuery学习笔记(技术文档) #### 一、JQuery能做什么? JQuery 是一款轻量级的 JavaScript 库,它的设计宗旨是“write less, do more”,即“写得更少,做得更多”。通过JQuery,可以实现以下功能: 1. **...
**jQuery学习笔记分享** 在Web开发中,jQuery是一个非常重要的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。本文将深入探讨jQuery的基本概念、核心功能以及常见用法。 ### 第1章:...
《锋利的jQuery学习笔记》是一份深入探讨jQuery框架的学习资料,主要针对想要掌握JavaScript库jQuery的开发者。jQuery是一款高效、简洁的JavaScript库,它极大地简化了JavaScript代码的编写,使得DOM操作、事件处理...