الكائن ReferenceError في JavaScript
الكائن ReferenceError يُشير إلى حدوث خطأ عند محاولة الإشارة إلى متغيرٍ غير موجود.
البنية العامة
new ReferenceError([message])
message
وسيط اختياري، وهو وصفٌ نصيٌّ للخطأ موجَّهٌ للبشر.
الخاصيات والدوال التابعة للدالة البانية ReferenceError
الخاصيات
ReferenceError.prototype
تُمثِّل هذه الخاصية كائن prototype التابعة للكائن ReferenceError.
الدوال
الدالة البانية ReferenceError لا تملك أيّة دوال تابعة لها مباشرةً، وإنما ترث بعض الخاصيات عبر سلسلة prototype.
الكائن prototype
الخاصيات
ReferenceError.prototype.constructor
تُحديد الدالة التي ستُنشِئ كائن prototype لكائنات ReferenceError؛ راجع صفحة الخاصيةObject.prototype.constructor لمزيدٍ من التفاصيل.
ReferenceError.prototype.message
رسالة الخطأ. وعلى الرغم من أنَّ مواصفة ECMAScript تقول أنَّه يجب أن يوفِّر كائن ReferenceError قيمةً خاصةً به للخاصية message، لكنه يرث الخاصية Error.prototype.message في أغلب محركات JavaScript.
ReferenceError.prototype.name
اسم الخطأ. هذه الخاصية موروثة من Error.prototype.name.
الدوال
كائن prototype التابع للكائن ReferenceError لا يملك أيّة دوال تابعة له مباشرةً، لكنه يرث بعض الخاصيات عبر سلسلة prototype.
أمثلة
سنحاول إسناد قيمة المتغير undefinedVariable غير المُعرَّف إلى المتغير a في المثال الآتي، وسنعالج الاستثناء باستخدام تعبير try...catch:
try {
var a = undefinedVariable;
} catch (e) {
console.log(e instanceof ReferenceError); // true
console.log(e.message); // "undefinedVariable is not defined"
console.log(e.name); // "ReferenceError"
}
سنبيّن مثالًا عن هذا الاستثناء برميه يدويًا باستخدام الكلمة المحجوزة throw:
try {
throw new ReferenceError('Hello');
} catch (e) {
console.log(e instanceof ReferenceError); // true
console.log(e.message); // "Hello"
console.log(e.name); // "ReferenceError"
}
دعم المتصفحات
| الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 3rd Edition .