javaScript高级程序设计--第7章函数表达式
Posted chenxiaomei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaScript高级程序设计--第7章函数表达式相关的知识,希望对你有一定的参考价值。
1.定义函数的方式有两种:
a.函数声明:
getName();
function getName(){ alert("123")};
函数声明的特征:函数声明的提升,所以上面的例子才可以在函数声明前调用函数而不报错
b.函数表达式(又叫匿名函数,注意不能在表达式完成前调用,会报错)
var getName = function(){alert("123")};
getName();
2.递归
arguments.callee 指向一个正在执行的函数的指针,所以实现递归时最好使用这种方法(此方法在严格模式下会报错),而不是调用自身函数名
3.闭包
经典案例:
//改版前
function getNum(){
var result = new Array();
for(var i=0;i<10;i++){
result[i] = function(){
return i;
}
}
return result;
}
getNum() //10次都返回10;
//改版后
function getNum(){
var result = new Array();
for(var i=0;i<10;i++){
result[i] = function(num){
return function(){ return num;} //
}(i) //自执行函数,i一直会变通过num再传进去
}
return result;
}
getNum() //1,2,3,4,5,6,7,8,9,10
以上是关于javaScript高级程序设计--第7章函数表达式的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 高级程序设计第 7 章 迭代器和生成器 学习笔记