// 语法
函数名(); // 运行函数体
调用函数的很简单,只要在函数名儿的后边加上一对小括号即可。
JS 中的函数是可调用的对象,这意味着它们不仅仅是静态结构,而是可以”运行”或”执行”的。调用函数时,实际上是在执行其函数体中定义的代码。
以下是关于 JS 函数调用的几个关键点:
- 基本调用:这是最常见的调用方式。使用函数名后跟一对括号来调用函数。如果函数接受参数,你可以在括号内传递它们。 ```javascript function greet(name) { console.log(“Hello, “ + name + “!”); }
greet(“Alice”); // 输出:”Hello, Alice!”
2. **方法调用**:当函数作为对象的属性(称为方法)存储时,可以通过对象进行调用。在这种情况下,`this` 关键字通常指向调用方法的对象。
```javascript
var person = {
name: "Bob",
sayHello: function() {
console.log("Hello, " + this.name + "!");
}
};
person.sayHello(); // 输出:"Hello, Bob!"
- 构造函数调用:使用
new
关键字调用函数时,它会作为构造函数执行,创建并返回一个新对象。此时,函数名通常首字母大写,以表示它是一个构造函数。 ```javascript function Person(name) { this.name = name; }
var alice = new Person(“Alice”); console.log(alice.name); // 输出:”Alice”
4. **间接调用**:使用 `call` 和 `apply` 方法,你可以间接调用任何函数,并为其指定一个值作为 `this` 对象。
```javascript
function introduce(title) {
console.log(title + " " + this.name);
}
var user = {name: "Alice"};
introduce.call(user, "Ms."); // 输出:"Ms. Alice"
- 箭头函数和调用:ES6 引入了箭头函数,这是一个特殊的函数,不绑定自己的
this
。当你在箭头函数内部引用this
时,它实际上引用的是包围它的函数或全局作用域的this
。 ```javascript var team = { members: [“Alice”, “Bob”], teamName: “SuperTeam”, printTeamMembers: function() {
} };this.members.forEach(member => {
console.log(member + " is in " + this.teamName);
});
team.printTeamMembers(); ```
- 返回值:函数可以通过
return
语句返回一个值。如果函数没有返回语句,或者返回语句没有明确的值,那么函数将默认返回undefined
。
理解函数的调用方式对于掌握 JS 非常重要,因为它不仅关联到代码的逻辑流程,还涉及到诸如上下文、作用域和闭包等高级概念。