本文主要分析了JavaScript中函数的几种写法,具体如下:
1、函数的声明和表达式(旧方法,也是最常见的方法)
2、通过Function构造器
这也是一种从一开始就存在方法,但是因为书写麻烦等原因,相对使用较少
3、自从ECMAScript 2015(es6)推出以后,又引进了几种新的语法,具体如下:
(1)not-so-anonymous函数声明
这是一种新的匿名函数声明形式,如果使用过ES Modules的,就知道这种语法。虽然在表达上它与匿名函数非常相似,但它实际上有一个默认的名称‘default’。
1 export default function(){}
此处,这个‘default’本身不是有效的标识符,并且没有绑定在该匿名函数上。
(2)方法定义
对于以下例子,我们可以很容易发现它定义了匿名和命名函数表达式作为属性的值。这些其实不是不同的语法形式,而是之前讨论的函数表达式的示例,是在初始化对象时编写的。
以上形式最初在ES3中定义,在ES5中引入了访问器属性定义:
从ES6开始,JavaScript提供了一个简单的语法来定义方法,这种语法包括文字属性名称和计算属性名称以及访问器形式:
以及静态方法:
升成器:
升成器有一种特殊的语法,除了箭头函数=>和定义setter/getter方法的时候不能添加之外,可以被添加在其他所有语法形式之中。我们可以通过其生成函数声明、表达式、定义,甚至是构造函数: