javascript函数声明
2016-02-03 14:18
711 查看
之前说的三种函数声明中(参见 javascript变量声明),使用Function构造函数的声明方法比较少见,我们暂时不提。function
func() { }和var func = function() { }除了在声明提升中有所不同之外也没有其他不同,我们合并起来一起看。我们在这里着重讲一个东西——匿名函数。
匿名函数顾名思义,就是没有名字的函数。它的形式就是function() { }。请注意和之前说的两种方式的区别,这里并没有赋值给任何变量,也就是说,没有指向这个函数的引用,我们无法在其他地方调用这个函数,也就是说,这种函数的使用价值只有一次。当我们把匿名函数赋值给其他变量时,就变成了var func = function() { }。是不是很熟悉?没错,就是我们之前说的变量声明的方法。而如果func是隐式声明的话,那么,这个函数就变成了全局函数。
匿名函数使用非常广泛,它常用于只执行一次的函数,例如排序函数,我们可以这样来写:
[javascript] view
plain copy
var a = [2,1,4,7,5];
a.sort(function(num1, num2) {
return num1 > num2;
})
我们传了个匿名函数作为参数,因为这个函数只适用于这个地方,而无法用在其他地方。但如果是类似的地方也用了类似的函数,例如我们需要两次排序:
[javascript] view
plain copy
var a = [2,1,4,7,5],
b = [4,2,6,4,1];
function sortDesc(num1, num2) {
return num1 > num2;
}
a.sort(sortDesc);
b.sort(sortDesc);
我们就可以把这个匿名函数剥离出来赋给一个function类型的变量,达到重复利用的目的。
由上面这个例子我们可以看出匿名函数的优劣。坏处很明显,就是无法再次利用;好处是减少了声明的消耗(当然,如果有两次以上的利用的话,当然是声明的消耗更少)。
func() { }和var func = function() { }除了在声明提升中有所不同之外也没有其他不同,我们合并起来一起看。我们在这里着重讲一个东西——匿名函数。
匿名函数顾名思义,就是没有名字的函数。它的形式就是function() { }。请注意和之前说的两种方式的区别,这里并没有赋值给任何变量,也就是说,没有指向这个函数的引用,我们无法在其他地方调用这个函数,也就是说,这种函数的使用价值只有一次。当我们把匿名函数赋值给其他变量时,就变成了var func = function() { }。是不是很熟悉?没错,就是我们之前说的变量声明的方法。而如果func是隐式声明的话,那么,这个函数就变成了全局函数。
匿名函数使用非常广泛,它常用于只执行一次的函数,例如排序函数,我们可以这样来写:
[javascript] view
plain copy
var a = [2,1,4,7,5];
a.sort(function(num1, num2) {
return num1 > num2;
})
我们传了个匿名函数作为参数,因为这个函数只适用于这个地方,而无法用在其他地方。但如果是类似的地方也用了类似的函数,例如我们需要两次排序:
[javascript] view
plain copy
var a = [2,1,4,7,5],
b = [4,2,6,4,1];
function sortDesc(num1, num2) {
return num1 > num2;
}
a.sort(sortDesc);
b.sort(sortDesc);
我们就可以把这个匿名函数剥离出来赋给一个function类型的变量,达到重复利用的目的。
由上面这个例子我们可以看出匿名函数的优劣。坏处很明显,就是无法再次利用;好处是减少了声明的消耗(当然,如果有两次以上的利用的话,当然是声明的消耗更少)。
相关文章推荐
- JSP 隐式对象
- js 鼠标放上去显示浮层
- JSP 动作元素
- javascript三种创建对象的方式
- 如何获得当前屏幕顶端距离整个页面最上端的距离(即js获取浏览器滚动条距离顶端的距离)
- javascript 可能不知道的小技巧
- JS简单实现文件上传实例代码(无需插件)
- socket.io+angular.js+express.js做个聊天应用(四)
- JSON的读取,页面爬取
- js each的用法
- D3.js 整体展示篇
- JavaScript 经典实例收集整理
- PouchDB:可随时同步的开源JavaScript数据库
- ZeroClipboard js复制文本(兼容全部浏览器)
- JS实现无限分页加载——原理图解
- JS修炼之道》—— 读后总结
- 关于jsonp的理解
- JavaScript排序算法——选择排序
- JavaScript排序算法——希尔排序
- JavaScript排序算法——冒泡排序