js函数可以通过以下三种方法定义
1、使用关键字Function定义函数。
2、可以通过声明定义。
3、也可以是一个表达式。
1、关键字Function定义(构造函数)
var myFunction = new Function('a', 'b', 'return a * b'); var x = myFunction(4, 3);
实际不必使用构造函数(在javascript中很多时候需要避免使用new关键字,以及这种方式会导致解析两次代码,影响性能。第一次解析常规的JavaScript代码,第二次解析传入构造函数的字符串。) 上例可以写成如下:
var myFunction = function(a, b){return a * b} var x = myFunction(4, 3);
2、声明定义,相较于表达式的方式解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),这是由于javascript函数声明提升;
function functionName(){ //执行代码 }
3、表达式方式定义,函数的名称是可选的(匿名函数),表达式定义必须等到解析器执行到它所在的代码行,才会真正被解释执行
var x = function(a, b){return a * b};
自调用函数(实际上是一个匿名自我调用的函数)
函数表达式可以“自调用”。自调用表达式会自动调用,不能自调用声明的函数。
(function(){ //代码 })();;
js函数是对象:
1、typeof function();//返回function。
2、函数有属性和方法。
3、arguments.length属性返回函数调用过程接收到的参数个数。
function myFunction(a, b){ return arguments.length; }
4、toString()方法将函数作为一个字符串返回。
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();//function myFunction(a, b){return a * b}