JavaScript中,通常情况下,我们都把代码卸载函数里面,我们大部分代码执行都是函数调用的结果,为了更好的理解Function,我们需要了解javascript对象的一些特性.
javascript对象有以下一些特性:
- 可以使用字面量创建
- 可以赋值给变量/数组/其他对象的属性
- 可以作为函数的参数传递
- 有属性
- 可以作为返回值返回
JavaScript函数拥有JavaScript对象的所有特性,而且还可以被调用.那就可以这么说,JavaScript函数就是对象.
函数同样拥有上面的特性:
1 2 3 4 5
| var myFunc = function() { };
myArray.push(function() { });
myObj.myFunc = function() { };
|
1 2 3 4
| function myFunc(someFunc) { someFunc(); } myFunc(function() { });
|
1 2
| var myFunc = function() { }; myFunc.someProperty = "Property";
|
1 2 3
| function myFunc(){ return function() { }; }
|
定义JavaScript函数
JavaScript中 Function 可以通过多种方式去定义:
函数声明和函数表达式
JavaScript定义函数最常用的两种方式就是通过函数声明和函数表达式
函数声明是function
关键字后面跟着函数名和参数的括号以及大括号.
1 2 3
| function myFunc() { return "Function Declaration"; }
|
另外一种方式,函数表达式就像编写任何JavaScript表达式一样,只有function
关键字/参数和函数体,如下
1
| var myFunc = function() { return "Function Expression"; };
|
立即执行函数
立即执行函数,就是在定义函数的写入表达式以后被立即执行,可以应用在JavaScript的模块开发中.
1
| var sum = (function (param1, param2) { return param1 + param2; })(2,3);
|
箭头函数
箭头函数是在ES6中添加的新特性,可以看做是通过语法糖的形式对函数表达式进行的简化,箭头函数使用=>
符号定义:
1 2
| var var1 = name => "Hi " + name; var var2 = var1("George");
|
如果箭头函数没有参数的话,还可以这样定义:
1
| var myFunc = () => alert('Arrow Function 调用');
|