标签:margin func 表达 不能 i++ UNC nbsp javascrip 自身
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
标签:margin func 表达 不能 i++ UNC nbsp javascrip 自身
原文地址:https://www.cnblogs.com/chenxiaomei0104/p/10538701.html