في JavaScript ، يتم استخدام خاصية الكائن القابلة للتمديد للإشارة إلى ما إذا كان يُسمح بإضافة خصائص جديدة ديناميكيًا في الكائن. في معيار ECMASCRIPT 3 ، تكون جميع الكائنات قابلة للتمديد. في معيار ECMASCRIPT 5 ، لا تزال جميع الكائنات قابلة للتمديد افتراضيًا ، ولكن يمكن تغيير هذه الخاصية عن طريق الإعداد.
للتحقق مما إذا كان الكائن قابلًا للتوسع ، يمكنك استخدام عبارة abound.isextensible ():
نسخة الكود كما يلي:
var o = {x: 1} ؛
console.log (object.isextenseBly (o)) ؛ // true
لإنشاء كائن غير قابل للتمديد ، يمكنك استخدام الكائن.
نسخة الكود كما يلي:
Object.PreventStextensions (O)
console.log (object.isextenseBly (o)) ؛ // false
تجدر الإشارة إلى أنه نظرًا لعدم وجود بيان تشغيل عكسي للكائن.
نطاق عبارة الكائن. إذا تم تعيين كائن على غير قابل للتكيف ، فلا يزال من الممكن إضافة خصائص ديناميكيًا في كائن النموذج الأولي الخاص به ، ولا يزال من الممكن أن يتم توريث هذه الخصائص المضافة ديناميكيًا.
Object.seal () و Object.freeze ()
كائن. بالإضافة إلى هذه العملية ، هناك عمليتان أكثر صرامة في JavaScript لحماية الكائنات: Object.seal () و Object.freeze ().
تتمثل وظيفة الكائن. مثل التشغيل. في JavaScript ، يمكنك استخدام Object.issealed () للاستعلام عما إذا كان قد تم إغلاق كائن.
تتمثل وظيفة Object.freeze () في تعيين خاصية جميع الكائنات على أنها قراءة فقط على Object.seal (). مثل العمليات الكائن. في JavaScript ، يمكنك استخدام Object.isfrozen () للاستعلام عما إذا كان الكائن قد تم تجميده.
نسخة الكود كما يلي:
console.log (object.issealed (o)) ؛ // false
Object.seal (O) ؛
console.log (object.issealed (o)) ؛ // true
console.log (object.isfrozen (o)) ؛ // false
object.freeze (o) ؛
console.log (object.isfrozen (o)) ؛ // true
سواء كان كائن.