39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
![]() |
---
|
|||
|
title: Function Length
|
|||
|
localeTitle: Длина функции
|
|||
|
---
|
|||
|
## Длина функции
|
|||
|
|
|||
|
Свойство `length` на объекте функции содержит количество аргументов, ожидаемых функцией при вызове.
|
|||
|
|
|||
|
```javascript
|
|||
|
function noArgs() { }
|
|||
|
|
|||
|
function oneArg(a) { }
|
|||
|
|
|||
|
console.log(noArgs.length); // 0
|
|||
|
|
|||
|
console.log(oneArg.length); // 1
|
|||
|
```
|
|||
|
|
|||
|
### Синтаксис ES2015
|
|||
|
|
|||
|
ES2015 или ES6, как его обычно называют, вводили оператор останова и параметры функции по умолчанию. Оба эти дополнения изменяют способ работы с `length` .
|
|||
|
|
|||
|
Если в объявлении функции используется либо оператор останова, либо параметры по умолчанию, свойство `length` будет включать только количество аргументов перед оператором отдыха или параметр по умолчанию.
|
|||
|
|
|||
|
```javascript
|
|||
|
function withRest(...args) { }
|
|||
|
|
|||
|
function withArgsAndRest(a, b, ...args) { }
|
|||
|
|
|||
|
function withDefaults(a, b = 'I am the default') { }
|
|||
|
|
|||
|
console.log(withRest.length); // 0
|
|||
|
|
|||
|
console.log(withArgsAndRest.length); // 2
|
|||
|
|
|||
|
console.log(withDefaults.length); // 1
|
|||
|
```
|
|||
|
|
|||
|
Более подробную информацию о `Function.length` можно найти [в Документах MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length) от [Mozilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length) .
|