匿名函数:如 var a=function(){ return 1 };
此函数function 没有函数名,但是它将值赋给了变量 a
普通函数: function abc(){ return 1 };
此函数声明了一个名为abc的函数。
注意:使用匿名函数表达式时,函数的调用语句,必须放在函数声明语句之后!!!
例如:
Method1(); // 会报错
Var method1=function(){ return 1};
Method1(); // 1
Method2(); //打出1
function method2(){ return 1};
Method2(); //打出1
注:匿名函数只有在被调用时才能初始化(return 1);普通函数在编译后函数声明和他的赋值都会被提前(包括: return 1 都会被提前)。所以普通函数的调用可以在任意位置。
因为非匿名函数在定义时,就已经创建函数对象和作用域对象;所以,即使未调用,也占用内存空间;
匿名函数,仅在调用时,才临时创建函数对象和作用域链对象;调用完,立即释放,所以匿名函数比非匿名函数更节省内存空间
匿名函数的应用
回调函数:将一个函数作为另一个函数的参数叫做回调函数
function fn(num1,num2){
console.log(num1()+num2());
}
fn(function(){return 1;}),function(){return 2;};
自调函数:定义一个匿名函数即自调。
(
function(num1,num2){
console.log(num1+num2);
}
)(100,200);