توسيع الوظيفة بفئات ES6
في ES6، يمكن توسيع الكائنات الخاصة، مما يسمح بالوراثة من كائن الوظيفة. على الرغم من أنه من الممكن استدعاء هذه الكائنات كوظائف، إلا أن تنفيذ المنطق لهذا الاستدعاء قد يكون أمرًا صعبًا.
تمرير بيانات المثيل إلى استدعاء الوظيفة
عند استدعاء فئة كدالة ، يشير هذا إلى كائن النافذة. للوصول إلى بيانات المثيل، يتوفر طريقتان:
class Smth extends Function { constructor(x) { super("return " JSON.stringify(x) ";"); } }
class Smth extends Function { constructor(x) { super("return " JSON.stringify(x) ";"); } }
تجريد ملحق الوظيفة
هناك طريقة أكثر عمومية تتمثل في إنشاء فئة ExtensibleFunction التي تتعامل مع الامتداد:class ExtensibleFunction توسع الوظيفة { منشئ (و) { return Object.setPrototypeOf(f, new.target.prototype); }
class Smth extends Function { constructor(x) { super("return " JSON.stringify(x) ";"); } }يمكن بعد ذلك استخدام هذه الفئة لتوسيع فئات معينة:
class Smth Extends ExtensibleFunction { منشئ (خ) { super(() => { return x; }); // إنهاء }
class Smth extends ExtensibleFunction { constructor(x) { super(() => { return x; }); // closure } }باختصار، يسمح توسيع الوظيفة بفئات ES6 بوراثة سلوك الوظيفة أثناء تخصيص منطق الاتصال. يمكن استخدام طرق مختلفة لتوفير الوصول إلى بيانات المثيل عند استدعاء الوظيفة الموسعة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3