jquery10 闭包示例
o = {
a:1,
o:{
b:2,
f : function(){
alert(o.a);//
alert(o.b);//undefined
}
}
}
o.o.f();
o = {
a:7,
o : {
a:1,
o:{
b:2,
f : function(){
alert(o.a);//
alert(o.b);//undefined
}
}
}
}
o.o.o.f();
o = {//这个o加到window闭包里面去了
a:7,
o : {//这个o没有
a:1,
o:{//这个o没有
b:2,
f : function(){
alert(o.a);//
alert(o.b);//undefined
}
}
}
}
o.o.o.f();
f = function(){
return {
a:1,
o:{
b:2,
f : function(){
alert(o.a);//o is not defined ,说明o不存在
alert(o.b);//o is not defined ,说明o不存在
}
}
}
}
f().o.f();
f = function(){
o = {a:7,b:8}
return {
a:1,
o:{
b:2,
f : function(){
alert(o.a);//
alert(o.b);//8 return的东西不在闭包里面
}
}
}
}
f().o.f();
f = function(){
o= {//这个o加到函数闭包里面去了
a:1,
o:{//这个o没有
b:2,
f : function(){
alert(o.a);//
alert(o.b);//undefined
}
}
}
return o;
}
f().o.f();
f = function(){
return {
a:1,
o:{
b:2,
f : function(){
o = {a:3,b:4}
alert(o.a);//
alert(o.b);//
}
}
}
}
f().o.f();
f = function(){
o = {a:5,b:6}
return function(){
a=1,
o={
b:2,
f : function(){
alert(o.a);//unudefined 以函数作为闭包层级,一层一层的向上查找,找到了就不找了
alert(o.b);//
}
}
return o;
}
}
f()().f();
f = function(){
o = {a:5,b:6}
return function(){
a=1,
b={
b:2,
f : function(){
alert(o.a);//
alert(o.b);//
}
}
return b;
}
}
f()().f();
f = function(){
return function(){
o = {a:15,b:16}//加到闭包
a=1,
b={//加到闭包
o:{a:11,b:12}, //没有加到闭包
b:2,
f : function(){
alert(o.a);//
alert(o.b);//
}
}
return b;
}
}
f()().f();
jquery10 闭包示例的更多相关文章
- JavaScript闭包示例
在下面的例子中,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4. <html> <head> <meta charset="utf ...
- Closure闭包示例
var foo = function(){ var cnt = 0; return function(){ return cnt++; }; }; var closure = foo(); conso ...
- 一个简单的Javascript闭包示例
//=====用闭包实现函数的Curry化===== //数字求和函数的函数生成器 function addGenerator( num ){ //返回一个简单的匿名函数,求两个数的和,其中第一个数字 ...
- 通过示例学习JavaScript闭包
译者按: 在上一篇博客,我们通过实现一个计数器,了解了如何使用闭包(Closure),这篇博客将提供一些代码示例,帮助大家理解闭包. 原文: JavaScript Closures for Dummi ...
- JavaScript学习总结——我所理解的JavaScript闭包
一.闭包(Closure) 1.1.什么是闭包? 理解闭包概念: a.闭包是指有权限访问另一个函数作用域的变量的函数,创建闭包的常见方式就是在一个函数内部创建另一个函数,也就是创建一个内部函数,创建一 ...
- 我所理解的JavaScript闭包
目录 一.闭包(Closure) 1.1.什么是闭包? 1.2.为什么要用闭包(作用)? 1.2.1.保护函数内的变量安全. 1.2.2.通过访问外部变量,一个闭包可以暂时保存这些变量的上下文环境,当 ...
- 《你不知道的JavaScript》第一部分:作用域和闭包
第1章 作用域是什么 抛出问题:程序中的变量存储在哪里?程序需要时,如何找到它们? 设计 作用域 的目的:为了更好地存储和访问变量. 作用域:根据名称查找变量的一套规则,用于确定在何处以及如何查找变量 ...
- python 装饰器、内部函数、闭包简单理解
python内部函数.闭包共同之处在于都是以函数作为参数传递到函数,不同之处在于返回与调用有所区别. 1.python内部函数 python内部函数示例: def test(*args): def a ...
- C#编译器闭包机制
背景 C# 在编译器层面为我们提供了闭包机制(Java7 和 Go 也是这种思路),本文简单的做个解释. 背景知识 你必须了解:引用类型.值类型.引用.对象.值类型的值(简称值). 关于引用.对象和值 ...
随机推荐
- Sqoop框架基础
Sqoop框架基础 本节我们主要需要了解的是大数据的一些协作框架,也是属于Hadoop生态系统或周边的内容,比如: ** 数据转换工具:Sqoop ** 文件收集库框架:Flume ** 任务调度框架 ...
- 数据仓库 SSIS
SSDT 下载 :https://msdn.microsoft.com/en-us/library/mt204009.aspx Codeplex 上的 AdventureWorks 示例数据库此链接将 ...
- 《剑指offer》旋转数组的最小数字
一.题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 二.输入描述 输入一个递增排序的数组的一个旋转 三.输出描述 输出旋转数组的最小元素 例如: 例如数组{3,4,5,1 ...
- 把ISO文件当作光盘挂载
当不能挂载光盘或者U盘时候,只需要把ISO文件传到某个目录中,比如/data下,即可挂载,如下所示: mount -o loop /data/rhel-server-6.3-x86_64-dvd. ...
- Java 调用对象方法的执行过程
弄清调用对象方法的执行过程十分重要.下面是调用过程的详细描述: 1) 编译器查看对象的声明类型和方法名.假设调用x.f(param),且隐式参数x声明为C类的对象.需要注意的是:有可能存在多个名为f, ...
- JS触发按钮事件
前台代码: <asp:Button ID="btnSaveBattery" runat="server" Text="保存" OnCl ...
- gcd步数
题目描述 一个有趣的函数F(a,b),表示对于数对(a,b)调用辗转相除法的步数为多少 例如 (24,40)....0 (16,24).....1 (8,16).....2 (0,8)....3,即f ...
- [NOIP2015提高组]运输计划
题目:BZOJ4326.洛谷P2680.Vijos P1983.UOJ#150.codevs4632.codevs5440. 题目大意:有一棵带权树,有一些运输计划,第i个运输计划从ai到bi,耗时为 ...
- Linux 中挂载 ISO 文件
在 Linux 中挂载 ISO 文件 用 mount 命令,在终端中输入如下命令即可: sudo mount -o loop filename.iso /cdrom 其中 filename.iso 是 ...
- 【APP自动化】Appium Android 元素定位方法 原生+H5
参考资料: http://blog.csdn.net/vivian_ljx/article/details/54410024