"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استرداد الخصائص الموروثة غير القابلة للإحصاء في جافا سكريبت؟

كيفية استرداد الخصائص الموروثة غير القابلة للإحصاء في جافا سكريبت؟

تم النشر بتاريخ 2024-11-13
تصفح:531

How to Retrieve Inherited Non-Enumerable Properties in JavaScript?

استرداد الخصائص الموروثة غير القابلة للإحصاء

في JavaScript، يعتمد الوصول إلى خصائص الكائن على طرق مختلفة مصممة خصيصًا لمتطلبات محددة. ومع ذلك، عندما يتعلق الأمر بالحصول على خصائص غير قابلة للإحصاء وغير مملوكة، فلا توجد آلية واضحة.

لمعالجة هذا الأمر، يمكن استخدام وظيفة مخصصة تجمع بين Object.getOwnPropertyNames() للحصول على خصائص غير قابلة للإحصاء وينتقل إلى سلسلة النماذج الأولية لاسترداد النماذج الموروثة.

function getAllProperties(obj) {
  var allProps = [], curr = obj;
  do {
    var props = Object.getOwnPropertyNames(curr);
    props.forEach(function(prop) {
      if (allProps.indexOf(prop) === -1)
        allProps.push(prop);
    });
  } while (curr = Object.getPrototypeOf(curr));
  return allProps;
}

console.log(getAllProperties([1, 2, 3]));

في هذا المثال، [1, 2, 3] هي خاصية موروثة، وتقوم الدالة باستعادتها بنجاح دون أن ترث حالة التعداد الخاصة بها. يمكّن هذا الأسلوب المطورين من الوصول إلى الخصائص الموروثة غير القابلة للإحصاء، وهو أمر بالغ الأهمية لسيناريوهات معينة تتضمن نماذج أولية ووراثة الكائنات.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3