JavaScript中的函数的两种定义方式和函数变量赋值
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
/*I总结:
1.函数名可以做变量使用,可以赋值,可以传值
2.函数名当参数,传递给另一个函数
*/
//==================js中函数的两种定义方式和函数变量赋值================
//在javascript中定义一个函数就可以理解成定义了一个变量
//js中的变量时弱类型的哦。
//----------1
//function add1(){
//alert("add1");
//}
//那么函数作为一个变量,就可以作为参数,是add1指向了这个代码块在内存中存储的首地址
var add1=new Function("alert('add1');");//--------2
//以上1,2的写法是完全等价的,是js中声明函数的两种方式
//实际上,是add1指向了这段函数代码块,在内存中存储的首地址。
//至于具体如何存储,堆或栈,这里不多做研究了。
var addtt=add1;//函数名当变量使用,可以赋值,也可以传值
//addtt 指向了函数体
addtt();
//==================js中函数的两种定义方式和函数变量赋值================
//==================将函数变量作为参数传递===========================
//基本格式:
function add2(fun){
//将函数名作为参数传递
fun();
}
add2(add1);
//--------------------------------------
//函数名作参数使用,同时接受参数的情况演示的啦
function add(a){
return n+10;
}
//a:数字,fun:函数
function addTest(a,fun){
var t=fun(a);
return t;
}
var tt=addTest(22,add);//这样的写法也是ok的啦
alert(tt);
//==================将函数变量作为参数传递===========================
</script>
</head>
<body>
</body>
</html>