في جافا سكريبت، يمكن أن تكون الكائنات متداخلة، مما يؤدي إلى إنشاء بنية هرمية. ومع ذلك، قد يكون الوصول إلى الكائن الأصلي من كائن فرعي متداخل أمرًا صعبًا.
ضع في اعتبارك الكائن المتداخل التالي:
obj: { subObj: { foo: 'hello world' } };
للإشارة إلى الكائن الفرعي داخل s، نستخدم:
var s = obj.subObj;
الآن، نريد الحصول على الكائن الأصلي obj باستخدام s.
لسوء الحظ، لا توجد آلية مباشرة لاسترداد الكائن الأصل من كائن فرعي في Javascript. وذلك لأن الكائنات التابعة ليس لديها معرفة بوجود أصلها.
الحل البديل
أحد الحلول هو استخدام وظيفة لإنشاء علاقة بين الأصل والطفل داخل الكائنات المتداخلة . توسيع الكود أعلاه:
var main = {
name : "main object",
child : {
name : "child object",
parent : null
},
init : function() {
this.child.parent = this;
delete this.init;
return this;
}
}.init();
في الدالة init، نقوم بتعيين الكائن الأصل إلى الخاصية الأصل داخل الكائن الفرعي. من خلال استدعاء هذا، نشير إلى الكائن الحالي (أي الرئيسي) من داخل الكائن الفرعي المتداخل. أخيرًا، قمنا بإزالة وظيفة init لتوضيح التعليمات البرمجية.
باستخدام هذه التقنية، يمكننا الآن الوصول إلى الكائن الأصلي من الكائن الفرعي:
main.child.parent.name // returns "main object"
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3