Function.length

Властивість length зазначає кількість параметрів, очікуваних функцією.

Атрибути поля Function.length
Доступний для запису ні
Доступний для переліку ні
Доступний для налаштування так

Опис

length - це властивість функціонального об'єкта, вона вказує, скільки аргументів очікує функція, тобто кількість формальних параметрів. Ця кількість не включає залишкові параметри, і рахує лише параметри до першого, що має значення по замовчуванню. Для контрасту, властивість arguments.length є локальною властивістю функції, і надає кількість аргументів, що фактично передані у функцію.

Властивість конструктора Function

Конструктор Function теж є об'єктом Function. Його властивість length має значення 1. Атрибути властивості такі: Writable (доступний для запису): false, Enumerable (доступний для переліку): false, Configurable (доступний для налаштування): true.

Властивість об'єкта прототипу Function

Властивість об'єкта прототипу Function має значення 0.

Приклади

console.log(Function.length); /* 1 */

console.log((function()        {}).length); /* 0 */
console.log((function(a)       {}).length); /* 1 */
console.log((function(a, b)    {}).length); /* 2 і т.д. */

console.log((function(...args) {}).length); 
// 0, залишкові параметри не рахуються

console.log((function(a, b = 1, c) {}).length);
// 1, рахуються тільки параметри, розташовані до першого,
// який має значення за замовчуванням

Специфікації

Специфікація Статус Коментар
ECMAScript 1st Edition (ECMA-262) Standard Початкове визначення. Реалізоване у JavaScript 1.1.
ECMAScript 5.1 (ECMA-262)
The definition of 'Function.length' in that specification.
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Function.length' in that specification.
Standard Атрибут configurable цієї властивості тепер дорівнює true.
ECMAScript (ECMA-262)
The definition of 'Function.length' in that specification.
Living Standard

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
lengthChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support Yes
Configurable: trueChrome Full support 43Edge Full support 12Firefox Full support 37IE No support NoOpera Full support 30Safari Full support 10WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 37Opera Android Full support 30Safari iOS Full support 10Samsung Internet Android Full support 4.0nodejs Full support Yes

Legend

Full support  
Full support
No support  
No support

Див. також