Function.length

من موسوعة حسوب
< JavaScript‏ | Function
مراجعة 15:36، 28 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

الخاصية Function.length تُحدِّد عدد الوسائط الذي تتوقعه الدالة.

سمات الخاصية Function.length
قابلة للكتابة لا
قابلة للإحصاء لا
قابلة للضبط نعم

الوصف

الخاصية length التابعة لكائنات Function تُشير إلى عدد الوسائط الذي تتوقعه الدالة، أي عدد المعاملات الرسمية (formal parameters)، وهذا العدد يستثني معامل البقية (rest parameter)، وسيتضمن المعاملات التي قبل أوّل معامل له قيمة افتراضية.

وفي المقابل، الخاصية arguments.length تابعة للدالة محليًّا، وتوفِّر عدد الوسائط التي مُرِّرَت فعليًا إلى الدالة.

قيمة هذه الخاصية على الدالة البانية Function

الدالة البانية Function هي نفسها كائن Function، وقيمة الخاصية length التابعة لها هي 1.

قيمة هذه الخاصية على كائن prototype التابع للكائن Function

قيمة الخاصية length لكائن prototype للكائن Function هي 0.

أمثلة

مثال يبيّن قيمة الخاصية length التابعة للدالة البانية Function:

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

أمثلة مختلفة عن دوال عادية:

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

أمثلة عن معامل البقية (rest parameter):

// لن يدخل معامل البقية في الحسبان
console.log((function(...args)    {}).length);  // 0
console.log((function(a, ...args) {}).length);  // 1

مثال عن دالة لها معاملات افتراضية، لاحظ أنَّ القيمة المعادة هي 1 لأنَّ الخاصية length لن تحصي إلا المعاملات الموجودة قبل أوّل قيمة افتراضية:

console.log((function(a, b = 1, c) {}).length); // 1

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات