Function.length
الخاصية 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 |
|---|---|---|---|---|---|
| الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition). أصبحت هذه الخاصية قابلةً للضبط (أي سمة
configurable). - معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition .