الفرق بين المراجعتين لصفحة: «JavaScript/Object/defineGetter»
ط استبدال النص - 'تصنيف:JavaScript Object تصنيف:JavaScript Global Objects' ب'تصنيف:JavaScript Global Objects تصنيف:JavaScript Object' |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 63: | سطر 63: | ||
== مصادر ومواصفات == | == مصادر ومواصفات == | ||
*مسودة المعيار [https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__ ECMAScript Latest Draft]. جعلتها هذه المسودة معياريةً. | *مسودة المعيار [https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__ ECMAScript Latest Draft]. جعلتها هذه المسودة معياريةً. | ||
[[تصنيف:JavaScript]] | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Global Objects]] | [[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Object]] | [[تصنيف:JavaScript Object|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:42، 28 يناير 2018
الدالة Object.prototype.__defineGetter__()
تربط دالةً بإحدى خاصيات الكائن، وستستدعى تلك الدالة عند محاولة الوصول إلى الخاصية.
تحذير: هذه الدالة مهملة ويُفتَرَض تعريف دوال getter عند تهيئة الكائنات أو باستخدام الدالة Object.defineProperty()
، وعلى الرغم من أنَّ هذه الدالة موجودة في أغلبية المتصفحات، لكنها لم تُعرَّف إلا في آخر مسودة من معيار ECMAScript لأغراض التوافقية، ولا يجب أن تُستخدَم لوجود بدائل أفضل منها.
البنية العامة
obj.__defineGetter__(prop, func)
prop
سلسلة نصية تحتوي على اسم الخاصية التي نريد ربط الدالة المعطية إليها.
func
الدالة التي نريد استدعاءها عند محاولة الوصول إلى الخاصية المعنية.
القيمة المعادة
القيمة undefined
.
الوصف
تسمح الدالة __defineGetter__
بتعريف دالة getter على كائنٍ موجودٍ مسبقًا.
أمثلة
مثال عن استخدام الدالة __defineGetter__
، نُذكِّر أنَّه لا يجدر بنا استخدام هذه الطريقة:
var o = {};
o.__defineGetter__('gimmeFive', function() { return 5; });
console.log(o.gimmeFive); // 5
يمكننا تنفيذ ما سبق بطريقةٍ معيارية عبر تعريف دالة getter باستخدام الشكل المختصر لتهيئة الكائنات:
var o = { get gimmeFive() { return 5; } };
console.log(o.gimmeFive); // 5
أو باستخدام الدالة Object.defineProperty()
:
var o = {};
Object.defineProperty(o, 'gimmeFive', {
get: function() {
return 5;
}
});
console.log(o.gimmeFive); // 5
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | 11 | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft. جعلتها هذه المسودة معياريةً.