JavaScript 函数与作用域全解析
1. 函数表达式与匿名函数
在 JavaScript 中,我们之前主要接触的是函数声明,它为函数提供了函数体(定义函数的功能)和标识符(以便之后调用函数)。不过,JavaScript 也支持匿名函数,这类函数不一定有标识符。
你可能会好奇,没有标识符的函数有什么用呢?没有标识符,我们要怎么调用它呢?答案在于理解函数表达式。表达式是能计算出值的东西,而在 JavaScript 里,函数和其他类型的值一样,也是值。函数表达式就是声明(可能未命名的)函数的一种方式。函数表达式可以赋值给某个东西(从而赋予它一个标识符),也可以立即调用。
函数表达式在语法上与函数声明相同,只是可以省略函数名。下面是一个使用函数表达式并将结果赋值给变量的例子,这实际上等同于函数声明:
const f = function() {
// ...
};
这样做的结果和我们以常规方式声明函数一样:我们得到了一个标识符 f ,它指向一个函数。就像常规的函数声明一样,我们可以用 f() 来调用这个函数。唯一的区别是,我们通过使用函数表达式创建了一个匿名函数,并将其赋值给了一个变量。
匿名函数经常被使用,比如作为其他函数或方法的参数,或者用于在对象中创建函数属性。
如果我们给函数表达式中的函数命名并赋值给一个变量,会发生什么呢?又为什么要这样做呢?例如:
co
超级会员免费看
订阅专栏 解锁全文
756

被折叠的 条评论
为什么被折叠?



