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 Latest Draft (ECMA-262)
The definition of 'Function.length' in that specification.
Draft

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

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 YesSafari Full support YesWebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung 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 ? WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 37Opera Android Full support 30Safari iOS ? Samsung Internet Android Full support 4.0nodejs Full support Yes

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

Див. також