function 函数的声明方式
普通函数的声明
function box(a,b){
return a+b};
alert(box(2,3));
可以看到正常打印了。这是最简单的函数的声明。
使用变量初始化函数
var box = function(a,b){
return a+b};
alert(box(2,3));
这是使用 变量初始化函数。
使用 function 构造函数
var box = new Function('a','b','return a+b');
alert(box(1,2));
第三种不推荐使用,因为它会解析两次代码。(第一次是解析常规 ECMAScript 代码,第二次是解析传入构造函数中的字符串)从而影响性能。我们通过这种语法来理解 函数是对象,函数名是指针 的概念。
作为值的函数
因为 ECMAScript中的函数名本身就是变量,所以函数也可以作为值来使用。不仅可以像传递参数那样把一个函数传递给另一个函数,而且可以将另一个函数作为另一个函数的结果返回。
函数可以传递函数,第一个我们写一个传递的函数
function box(sum,num){
return sum+num;
}
function sum(num){
return num+10;
}
var res = box(sum(10),10);
document.write(res);
这时候我们把 sum(10)传递的是函数的返回值和普通的变量没区别。所以这时候就是 function sum(10){return 10+10}; 最后返回的是 10+10=20;然后函数 box(sum(10),10)相当于 box(20,10) 所以打印的就是30 .这个例子就是把函数作为返回值传递的,而不是作为函数传递的。
接下来的例子就是要把函数本身作为参数传递,而不是函数的结果传递。
function box(sum,num){
return sum(num);
}
function sum(num){
return num+10;
}
var res = box(sum,10);
document.write(res);
这时候就是把 sum() 函数作为一个值返回。
网友评论