function 函数类型之函数的声明方式

function 函数的声明方式

普通函数的声明

function box(a,b){    
return a+b};    
alert(box(2,3));    

function 函数类型之函数的声明方式_第1张图片

可以看到正常打印了。这是最简单的函数的声明。

使用变量初始化函数

var box = function(a,b){    
return a+b};    
alert(box(2,3));       

function 函数类型之函数的声明方式_第2张图片

这是使用 变量初始化函数。

使用 function 构造函数

var box = new Function('a','b','return a+b');    
alert(box(1,2));      

function 函数类型之函数的声明方式_第3张图片

第三种不推荐使用,因为它会解析两次代码。(第一次是解析常规 ECMAScript 代码,第二次是解析传入构造函数中的字符串)从而影响性能。我们通过这种语法来理解 函数是对象,函数名是指针 的概念。

作为值的函数

因为 ECMAScript中的函数名本身就是变量,所以函数也可以作为值来使用。不仅可以像传递参数那样把一个函数传递给另一个函数,而且可以将另一个函数作为另一个函数的结果返回。
函数可以传递函数,第一个我们写一个传递的函数

function box(sum,num){     
return sum+num;     
}  
    
function sum(num){     
return num+10;     
}      
 
var res = box(sum(10),10);      
document.write(res);

function 函数类型之函数的声明方式_第4张图片

这时候我们把 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);   

function 函数类型之函数的声明方式_第5张图片

这时候就是把 sum() 函数作为一个值返回。

你可能感兴趣的:(function 函数类型之函数的声明方式)