الفرق بين المراجعتين لصفحة: «JavaScript/Object/isExtensible»
ط استبدال النص - 'تصنيف:JavaScript Object تصنيف:JavaScript Global Objects' ب'تصنيف:JavaScript Global Objects تصنيف:JavaScript Object' |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 64: | سطر 64: | ||
*معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-object.isextensible ECMAScript 2015 (6th Edition)]. | *معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-object.isextensible ECMAScript 2015 (6th Edition)]. | ||
*معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.3.13 ECMAScript 5.1]. | *معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.3.13 ECMAScript 5.1]. | ||
[[تصنيف:JavaScript]] | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Global Objects]] | [[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Object]] | [[تصنيف:JavaScript Object|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:39، 28 يناير 2018
الدالة Object.isExtensible()
تُحدِّد إن كان أحد الكائنات قابلًا للتوسعة (أي يمكن إضافة خاصيات جديدة إليه).
البنية العامة
Object.isExtensible(obj)
obj
الكائن الذي نريد التحقق منه.
القيمة المعادة
قيمة منطقية (Boolean
) تبيّن إذا كان الكائن قابلًا للتوسعة أم لا.
الوصف
يمكن توسعة الكائنات افتراضيًا، أي يمكن إضافة خاصيات جديدة إليها، لكن يمكن جعل العنصر غير قابلٍ للتوسعة باستخدام الدالة Object.preventExtensions()
أو Object.seal()
أو Object.freeze()
.
لاحظ أنَّه في معيار ECMAScript 5 كان استعمال هذه الدالة على وسيطٍ ليس كائنًا (أي قيمةً أوليةً) سيؤدي إلى رمي TypeError
، لكن بدءًا من ECMAScript 2015 (أي ES6) فستُعامل الوسائط التي لا تُمثِّل كائنات على أنها كائنات غير قابلة للتوسعة، أي أنها ستُعيد القيمة false
:
Object.isExtensible(1);
// TypeError: 1 is not an object (ES5)
Object.isExtensible(1);
// false (ES2015)
أمثلة
مثال عن كائنٍ جديدٍ يوضِّحُ أنَّه قابلٌ للتوسعة:
var empty = {};
Object.isExtensible(empty); // === true
لكن يمكن تعديل ذلك باستخدام الدالة Object.preventExtensions()
:
Object.preventExtensions(empty);
Object.isExtensible(empty); // === false
أما الكائنات المختومة (sealed objects) فهي غير قابلة للتوسعة:
var sealed = Object.seal({});
Object.isExtensible(sealed); // === false
وكذلك الأمر بالنسبة إلى الكائنات المُجمَّدة (frozen objects):
var frozen = Object.freeze({});
Object.isExtensible(frozen); // === false
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | 6 | 4 | 9 | 12 | 5.1 |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.