JavaScript Function.length — кількість параметрів функції
Властивість length повертає кількість оголошених параметрів функції.
Загальний опис
І тут двічі можна помилитись.
Перше: рахуються лише параметри до першого зі значенням за замовчуванням. У function f(a, b = 1, c) властивість дасть 1, а не 3.
Друге: ...rest не рахується взагалі. У function f(a, ...rest) буде 1.
Це не баг, а визначення: length показує кількість обов'язкових параметрів. На цьому, наприклад, побудовані бібліотеки каррінгу — вони по ньому розуміють, скільки аргументів ще чекати.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| length | 1+ | 1+ | 1+ | 3+ | 12+ | 9+ |
| Переглядач | ||||
|---|---|---|---|---|
| length | yes | yes | yes | yes |
Приклади
+ запропонувати свій приклад у пісочниці
Що саме рахується — і що ні.
function a(x, y) {}
function b(x, y = 1, z) {}
function c(x, ...rest) {}
console.log(a.length); // 2
console.log(b.length); // 1 — лише ДО значення за замовчуванням
console.log(c.length); // 1 — ...rest не рахується
// не плутати з arguments.length — це фактично передані
function show(x, y) {
console.log(show.length, arguments.length);
}
show(1, 2, 3); // 2 3
Коментарі
Коментарів ще немає — будьте першим!