js 函数定义的方式

一、总结

一句话总结:

最常见就下面三种

最常见:function func1([参数]){/*函数体*/}
将匿名函数赋值给变量:var func2=function([参数]){/*函数体*/};
json方式:change: function () { $('body').css({'backgroundColor': 'red'}); },

 

1、function func1([参数]){/*函数体*/}和var func2=function([参数]){/*函数体*/} 定义的函数的区别?

function func1([参数]){/*函数体*/}定义的函数在函数前可以调用

主要区别在于调用的时机:

  函数式声明调用方式:2种



// 在函数前面,仍然可以调用 
mode();

/**
* 函数式声明
*/
function mode() {
console.log("运行mode函数");
}
// 在函数后面,当然可以调用
mode();


  

函数表达式定义函数:1种



// 报错:在调用mode2()之前,没有定义
mode2();
/**
* 以函数表达式的形式定义函数
*/
var mode2 = function() {
console.log("运行mode2函数");
}
// 只能放在该函数的后面,才能调用
mode2();


 

 

二、js 函数定义的2种方式

 



方式一:



/**
* 函数式声明
*/
function mode() {
console.log("运行mode函数");
}


 

方式二:



/**
* 以函数表达式的形式定义函数
*/
var mode2 = function() {
console.log("运行mode2函数");
}


 

主要区别在于调用的时机:

  函数式声明调用方式:2种



// 在函数前面,仍然可以调用 
mode();

/**
* 函数式声明
*/
function mode() {
console.log("运行mode函数");
}
// 在函数后面,当然可以调用
mode();


  

函数表达式定义函数:1种



// 报错:在调用mode2()之前,没有定义
mode2();
/**
* 以函数表达式的形式定义函数
*/
var mode2 = function() {
console.log("运行mode2函数");
}
// 只能放在该函数的后面,才能调用
mode2();


 

 

三、js函数几种常用的定义方式

function func1([参数]){/*函数体*/}

var func2=function([参数]){/*函数体*/};

var func3=function func4([参数]){/*函数体*/};

var func5=new Function();

上述第一种方式是最常用的方式,不用多说。

第二种是将一匿名函数赋给一个变量,调用方法:func2([函数]);

第三种是将func4赋给变量func3,调用方法:func3([函数]);或func4([函数]);

第四种是声明func5为一个对象。