网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > java语言

JavaScript函数的多种写法

栏目: java语言 / 发布于: / 人气:2.14W

本文主要介绍了JavaScript函数的多种写法,下面是小编为大家整理的JavaScript函数的多种写法,欢迎参考~

JavaScript函数的多种写法

  函数声明和表达式(旧方法):

最早的函数定义形式就是函数声明和函数表达式。前者是最初设计的一部分(1995)并出现在第一个版本的规范(1997年)中,后者是在第三个版本(1999年)引入的。我们可以从这些规范中提取三种不同的定义形式:

要注意的是匿名函数表达式可能仍然有一个“名称”。

  Function构造器

当我们在讨论一种语言的“函数API”的时候,就已经开始讨论Function构造器。函数声明的语法形式可以被解释为函数构造器的API的“文字”形式。Function构造器为定义函数提供了一种方法:通过N个字符串参数指定函数参数和函数主体,(如下面的例子)最后一个字符串参数始终是函数主体(需要指出的是,这是一种动态求值形式,会有潜在的安全风险)。对于大多数情况来说,这种形式并不适合,因此它的使用非常稀少——但是自从第一个版本的`ECMAScript以来,它就一直存在在JavaScript中了。

  新方法:

自从ES2015推出以来,已经引入了几种新的语法形式。这些形式的变化是巨大的!

  not-so-anonymous函数声明

这是一种新的匿名函数声明形式,如果你曾用过ES Modules,应该清楚这种语法。虽然它可能看起来与匿名函数表达式非常相似,但它实际上有一个默认名称,即“default”

这个“default”本身并不是有效的标识符,并且没有绑定在该匿名函数上。

  方法定义:

对于下面这个例子,大家应该能很快发现它定义了匿名和命名函数表达式作为属性的值。注意,这些不是不同的语法形式。它们是之前讨论过的函数表达式的示例,是在初始对象时编写的。这种形式最初是在ES3中引入的。

  在ES5中引入了访问器属性定义:

从ES2015开始,JavaScript提供了一个简单的语法来定义方法,这种语法包括文字属性名称和计算属性名称形式,以及访问器形式:

我们还可以使用这些新形式作为类声明和表达式中的原型方法的定义:

  和定义静态方法:

  生成器:

生成器有一种特殊的语法,除了箭头函数和定义setter / getter方法的时候不能添加之外,可以被添加在其他所有语法形式中。我们可以用其生成函数声明、表达式、定义,甚至构造函数。让我们把它们列出来: