71 lines
2.0 KiB
Markdown
71 lines
2.0 KiB
Markdown
|
---
|
|||
|
title: Function Invocation
|
|||
|
localeTitle: 函数调用
|
|||
|
---
|
|||
|
## 函数调用
|
|||
|
|
|||
|
调用函数时,将执行函数内的代码。通常使用术语“调用函数”而不是“调用函数”。
|
|||
|
|
|||
|
调用函数时,函数必须在范围内。函数的作用域是声明它的函数,如果它是在顶层声明的整个程序。
|
|||
|
|
|||
|
```javascript
|
|||
|
function myFunction(a, b) {
|
|||
|
return a * b;
|
|||
|
}
|
|||
|
myFunction(10, 2); // Function invocation, will return 20
|
|||
|
|
|||
|
//optional parameters (es6 only)
|
|||
|
//allow to set optional parameters
|
|||
|
|
|||
|
function myFunction(a, b = 10) {
|
|||
|
return a * b;
|
|||
|
}
|
|||
|
myFunction(1); // Function invocation, will return 10
|
|||
|
myFunction(1,5); // Function invocation, will return 5
|
|||
|
```
|
|||
|
|
|||
|
在示例代码中,a和b是函数的参数,它们保存值10和2,它们是函数调用中使用的参数。
|
|||
|
|
|||
|
### 调用函数作为方法
|
|||
|
|
|||
|
在JavaScript中,您可以将函数定义为对象方法。
|
|||
|
|
|||
|
以下示例创建一个对象( `myObject` ),其中包含两个属性( `firstName`和`lastName` )和一个方法( `fullName` ):
|
|||
|
|
|||
|
```javascript
|
|||
|
var myObject = {
|
|||
|
firstName:"John",
|
|||
|
lastName: "Doe",
|
|||
|
fullName: function () {
|
|||
|
return this.firstName + " " + this.lastName;
|
|||
|
}
|
|||
|
}
|
|||
|
myObject.fullName(); // Function invoked as a method, will return "John Doe"
|
|||
|
```
|
|||
|
|
|||
|
### 箭头功能
|
|||
|
|
|||
|
在最新版本的Javascript中,您还可以使用箭头函数缩短语法。 以下演示了两个功能。一个用标准形式写成,一个用箭头写成。请记住,箭头函数没有自己的this,arguments,super或new.target。
|
|||
|
|
|||
|
```javascript
|
|||
|
//regular function
|
|||
|
|
|||
|
function addStuff(args) {
|
|||
|
return args + 2;
|
|||
|
}
|
|||
|
|
|||
|
addStuff(2);
|
|||
|
//returns 4
|
|||
|
|
|||
|
//arrow function
|
|||
|
|
|||
|
var addStuff = (args) => args + 2;
|
|||
|
addStuff(2);
|
|||
|
//returns 4
|
|||
|
```
|
|||
|
|
|||
|
这个简写版本的箭头函数有一个隐式返回,因此您不指定return语句。
|
|||
|
|
|||
|
### 更多信息:
|
|||
|
|
|||
|
* 功能文档: [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions)
|