文档章节

javascript 闭包, 函数字面量

邪云子
 邪云子
发布于 2013/10/28 11:01
字数 288
阅读 111
收藏 2

##常见Javascript定义函数:

在Javascript定义一个函数一般有如下方式:

// 函数关键字(function)语句:
function fun(x){alert(x);}

// 函数字面量(Function Literals):
var fun = function(x){alert(x);}

//Function()构造函数:
var fun = new Function('x','alert(x);')

上面三种方法定义了同一个方法函数fun,第1种就是最常用的方法,后两种都是把一个函数复制给变量fun,而这个函数是没有名字的,即匿名函数。

##闭包 先说说为什么 JS 可以闭包,因为 JS 的变量基于词法作用域。

动态作用域和词法域的区别是什么?

词法作用域

匿名函数,定义并执行

(function(args) {
   alert(args);
})('script'); 

匿名函数的链式调用

(function(args) {
    alert(args);
    return arguments.callee;
})(1)(2)(3);

闭包计数器

var uniqueInteger = (function(){
	var counter = 0;
	return function(){return counter++;};
}());

var al = function (){
	for(var i=0; i<10; i++){
		alert(uniqueInteger());
	}
}

al();

Javascript模块化编程(一):模块的写法

Javascript模块化编程(二):AMD规范

Javascript模块化编程(三):require.js的用法

JavaScript Module Pattern: In-Depth

向setTimeout传递函数参数

向setTimeout传递函数参数

Array.prototype.slice.call

© 著作权归作者所有

共有 人打赏支持
邪云子
粉丝 18
博文 120
码字总数 24684
作品 0
朝阳
程序员
javascript语言精粹 读书笔记

这是我目前度过最好的js方面的书,小而精,没有一句废话全是精华。想要全面理解javascript,这本书必读。 P6 避免使用 / /注释 建议使用// P17 对象字面量是一种方便指定新对象的表示方法。属...

lilugirl
2014/01/16
0
3
深入学习JavaScript函数

前言: 函数对于任何一门语言来说都是核心的概念,通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。而JavaScript中最好的特性就是它对函数的实现。它几乎无所不能。但...

云中玉卷
05/02
0
0
Javascript设计模式之--单例模式

在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。在JavaScr...

YouDoce
2012/07/30
0
0
《javascript语言精粹》读书笔记(二)

第三章 对象 javascript的简单类型包括数字、字符串、布尔值、null值和undefined值,其他所有的值都是对象。 javascript包含一个原型链特性,允许对象继承另一对象的属性。正确的使用它能减少...

倪闯
2015/03/12
0
2
可视化分析js的内存分配与回收

之前写了一篇文章浏览器是怎么看闭包的,发现有些读者对js内存分配与回收懵懵懂懂,理解文章的配图有些困难,我想主要是因为配图省略了一些细节。今天专门写一篇关于js内存分配回收的文章,帮...

lucefer
2017/07/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java工程师用spring boot和web3j构建以太坊区块链应用

区块链最近IT世界的流行语之一。这项有关数字加密货币的技术,并与比特币一起构成了这个热门的流行趋势。它是去中心化的,不可变的分块数据结构,这是可以安全连接和使用的密码算法。在这种结...

笔阁
3分钟前
0
0
聊聊sentinel的SentinelWebAutoConfiguration

序 本文主要研究一下sentinel的SentinelWebAutoConfiguration SentinelWebAutoConfiguration spring-cloud-alibaba-sentinel-autoconfigure-0.2.0.BUILD-SNAPSHOT-sources.jar!/org/springf......

go4it
5分钟前
0
0
java ArrayList 根据对象内的属性排序

//根据修改时间排序Comparator com = new Comparator<ReleaseInfo>() {public int compare(ReleaseInfo reInfo1, ReleaseInfo reInfo2) { //return reInfo2.getModifyTime().c......

成长中的小白
6分钟前
0
0
PowerDesigner p f m

(非原创) P:PirmaryKey 主键 F:ForeignKey 外键 M:Mandatory 强制要求(不能为空) 主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从...

森火
6分钟前
0
0
Nexus Repository Manager 搭建私有docker仓库

Nexus Repository Manager 搭建私有docker仓库 2018年05月08日 14:44:23 阅读数:115 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d --name n...

linjin200
7分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部