Easyjs 细说Javascript里的 闭包(Closure)
要成为高级 JavaScript 程序员,就必须理解闭包。闭包有时你非用她不可, 所有理解闭包还是必要的。笔者通过例子来说一下“闭包”
1.定义一个函数的代理:
return function /*匿名函数1*/ () {
var callargs = Array.proptotype.slice(arguments, 0);
if (append)
callargs = callargs .concat(args);
fn.apply(scope || window, callargs );
}
}
在上面这段代码中就用到了闭包,即delegate方法里return 后面的函数(匿名函数1)就是闭包, 这个例子是个方法fn创建一个代理, 意思就是在执行方法fn的时候给他添加一些额外的参数或者改变fn执行的作用域,比如:
var fn = delegate(test, window, ["11122", "aaaa"], true); //给方法test 创建一个代理, 并传人参数["11122", "aaaa"]
fn("111"); //调用test的代理
}
function test() { //输出test的所有参数
var arr =[];
Easy.each(arguments, function (item) {
arr.push(item);
});
alert(arr.join("\n"));
}
其中的test_delegate里调用的 fn("111"); 参数"111", 就是在delegate方法里的匿名函数1的arguments 在这个例子里test执行后会输出:
111
11122
aaaa
delegate方法出自Easy.js。下面粘贴一个ECMA 262 里对闭包的介绍
ECMA 262 Closure(英文)
为之漫笔 翻译的ECMA 262 Closure
转载于:https://www.cnblogs.com/Easyjs/archive/2011/02/27/1966218.html
Easyjs 细说Javascript里的 闭包(Closure)相关推荐
- javascript中的闭包closure详解
文章目录 简介 函数中的函数 Closure闭包 使用闭包实现private方法 闭包的Scope Chain 闭包常见的问题 闭包性能的问题 总结 简介 闭包closure是javascript中一 ...
- [译]Javascript中的闭包(closures)
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- [转载]深入理解JavaScript闭包(closure)
最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业.对于初学者来说别说理解闭包了,就连文字叙述都很难看懂.撰写此文的目的就是用最通俗的文字揭开Java ...
- 深入理解JavaScript闭包(closure) 【收藏】
深入理解JavaScript闭包(closure) 原文地址:http://www.felixwoo.com/archives/247 Felix Woo 最近在网上查阅了不少Javascript闭 ...
- 【转】深入理解JavaScript闭包(closure)
文章来源:http://www.felixwoo.com/archives/247 最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业.对于初学者来说 ...
- 深入理解JavaScript系列:闭包(Closures)
介绍 本章我们将介绍在JavaScript里大家经常来讨论的话题 -- 闭包(closure).闭包其实大家都已经谈烂了.尽管如此,这里还是要试着从理论角度来讨论下闭包,看看ECMAScript中的闭 ...
- 细说javaScript入门学习
文章目录 Javascript笔记 1.js基本语法 (1).变量 (2).数据类型 (3).运算符 (4).其他语句 (5).输出 (6).获取属型 (7).定时函数 2.函数 3.对象 (1).创 ...
- JavaScript基础系列---闭包及其应用
闭包(closure)是JavaScript中一个"神秘"的概念,许多人都对它难以理解,我也一直处于似懂非懂的状态,前几天深入了解了一下执行环境以及作用域链,可戳查看详情,而闭包与 ...
- JavaScript 小记 之 闭包(Closures)
Closures are functions that refer to independent (free) variables. 闭包是以静态方式/词法方式进行存储所有父作用域的一个函数 在Jav ...
最新文章
- 设计模式:模板方法(Template Method Pattern)
- Linux-进程内存占用情况
- VS2010设置全局Include和Lib目录
- KlayGE 4.0中Deferred Rendering的改进(四):GI的神话
- 【转】盛大创新院许式伟:影响我一生的五个重要选择
- python怎么接收udp报文_面试官:说说UDP和TCP的区别及应用场景
- 【Github】nlp-journey: NLP相关代码、书目、论文、博文、算法、项目资源链接
- javascript 模板
- 自定义TxT文档下载
- 亚马逊云科技 2022 年 3 月新服务新功能强势来袭
- transformer中的多头注意力机制
- 关于“学习金字塔理论”的所思所想
- 使用POI在Excel单元格插入符号(Symbol)
- APS系统在注塑行业的应用
- CALayer和Retina显示屏的高分辨率的支持
- J2EE进阶之自定义标签,JSTL标签,国际化 十四
- HTML超链接QQ在线聊天
- QQ空间g_tk、bkn加密参数算法
- TP框架中S函数使用方法
- 【JS 逆向百例】医保局 SM2+SM4 国产加密算法实战
热门文章
- 数据结构 - 链表(双向链表学习)
- 【Python CheckiO 题解】Even the Last
- linux禁止u盘自动运行,求设置U盘自动运行和禁止运行的方法。
- 用生动的例子花式解释:python类中一定需要有 __init__方法么?没有会怎样?
- 【HDU - 6574】Rng(概率,古典概型)
- 【牛客 - 370F】Rinne Loves Edges(树,统计dp)
- 【CodeForces - 371D】Vessels(思维,元素合并,并查集)
- 【HDU - 5744 】Keep On Movin (回文串性质,贪心思维,不是水题)
- 10.深度学习练习:Convolutional Neural Networks: Step by Step(强烈推荐)
- linux联想电脑wifi密码,联想笔记本Y7000—ubuntu16.4无法开启wifi的解决办法