跳到主要内容

函数

在解读核心脚本、熟练运用脚本的过程中,最重要的概念就是“函数”。

编程语言中的函数,是指“将多个处理汇总在一起,使其能够轻松被调用”的东西。

将想要重复执行的处理定义为函数,只需调用即可执行。

可以暂且将其理解为接近于事件命令中的“公共事件”。

函数的定义

要执行函数,首先必须定义被调用的函数。

语法

function 函数名() {
想要执行的处理
}

示例

function aaa() {
console.log(111);
}

与变量名一样,函数名也可以自由命名。同样不能使用除部分符号外的符号以及保留字。

不过,实际上如果只是熟练运用脚本,定义函数的机会几乎没有。

但是,核心脚本实际上是一个庞大的函数集合。

在此了解函数的相关知识,对于学习脚本非常重要。

函数的调用

调用已定义函数的表达式如下。

语法

函数名();

示例

aaa();

像这样在函数名后面加上小括号进行调用。

在事件命令的脚本中描述的处理,大部分都是函数调用。

所以请务必记住这种写法。

参数

调用函数时,可以向被调用的函数传递数值、字符串等。

这称为“参数”。

参数的概念在公共事件中是没有的,所以可能会感到困惑。

这里让我们回想一下数学中的“函数”。

y = f(x)

数学中的函数有输入 x 和输出 y 的概念。

参数就相当于上面例子中的 x

首先来看例子。

语法

function 函数名(参数) {
想要执行的处理
}
函数名(传递给函数的值);

示例

function outputSum(bbb, ccc) {
console.log(bbb + ccc);
}
outputSum(10, 11);

执行示例中的处理,会输出 21 作为日志。

处理流程如下。

  1. 通过调用函数 outputSum 传递 1011
  2. 处理转移到函数 outputSum,参数 bbb 中存入 10,参数 ccc 中存入 11
  3. 通过 console.log 输出 bbbccc 的值,即 21 作为日志。

返回值

返回值是执行函数后的结果。再次回想数学中的函数。

上面的 y 就是返回值。来看例子。

语法

function 函数名() {
return 想要返回的值
}
let aaa = 函数名();

示例

function getHundred() {
return 100;
}
let bbb = getHundred();
console.log(bbb);

执行示例中的函数 getHundred,会返回固定值 100 作为返回值,因此变量 bbb 中被存入 100

将函数存入变量

在讲解变量类型时,您是否记得有“函数”这一类型?

在 js 中,可以将已定义的函数放入“变量”中。

语法

let 函数名 = function() {
想要执行的处理
}
函数名();

示例

let aaa = function() {
console.log(1);
}
aaa();

指定参数时如下。

let aaa = function(bbb) {
console.log(bbb);
}
aaa(1);

既然可以定义为变量,那也可以定义为对象的属性。

这一点非常重要。

定义为对象属性的函数,特别地称为“方法”。

不过,在本项中我们将统一使用“函数”这个称呼。

let aaa = {};
aaa.bbb = function() {
console.log(1);
}
aaa.bbb();

将函数存入变量有什么好处呢?

实际上,在事件命令的脚本中,几乎没有机会将函数存入变量。

但是,正确理解这一事实,可以在调用核心脚本中定义的函数时,准确理解“为什么要这样写”。

所以请在本项中将其放在脑海的一个角落即可。

备注

箭头函数

在将函数存入变量或指定为参数时,可以使用称为“箭头函数”的简化写法。

let aaa = (bbb) => {
console.log(bbb);
}
aaa(1);

通过使用符号 =>,可以用更少的字符数定义函数。

当参数只有一个时,小括号也可以省略。

此外,当函数体可以用一个表达式表达时,还可以省略大括号以及返回值的 return

将省略版的箭头函数与传统 function 进行比较,应该能清楚地看出区别。

let aaa = bbb => console.log(bbb);
aaa(1);
let aaa = function(bbb) {
console.log(bbb);
}
aaa(1);

但是,用箭头函数定义的函数,其执行主体 this 的处理与普通函数不同。不过,在当前阶段很难解释这个差异,所以此处省略。