JavaScript函数的概念

时间:2024-06-14 12:36:38
函数是这样的一段代码,它只定义一次,但可能被执行或调用任意多次。

JavaScript函数是参数化的:函数的定义会包含形参,这些参数在函数的整体中像局部变量一样工作。函数调用时会为形参提供实参的值。除了实参之外,每次调用还会拥有另一个值--本次调用的上下文--也就是this关键字的值。

如果函数挂载在一个对象上,作为对象的一个属性,就称它为该对象的方法。当通过这个对象来调用函数时,该对象就是此次调用的上下文(context),也是该函数this的值。

在JavaScript中,函数即对象,程序可以随意操控它们。比如可以把函数赋值给变量,或者作为参数传递给其他函数,甚至可以给函数设置属性,甚至调用函数的方法。

JavaScript函数可以嵌套在其他函数中定义,这样它们就可以访问它们被定义时所处的作用域中的任何变量。这意味着JavaScript函数构成了一个闭包(closure),它给JavaScript带来了非常强劲的编程能力。

函数的定义

以表达式定义的函数,函数的名称是可选的。一条函数声明语句实际上声明了一个变量,并把一个函数对象赋值给它。相对而言,定义函数表达式时并没有声明一个变量。函数定义表达式特别适合那种只会用到一次的函数。

声明语句会被提前到当前作用域顶部,所以,在函数声明之前,相同作用域中的任意地方都可以调用函数,但是以表达式定义的函数就另当别论。因为声明会被提前,但是赋值操作却不会。

正确执行:

JavaScript函数的概念

以下代码会报function undefined:

JavaScript函数的概念