Emad Saif نشر 28 مايو 2022 أرسل تقرير نشر 28 مايو 2022 يمكننا عمل كائنات Objects من صنف Class معين عبر الكلمة المفتاحية new في جافاسكريبت: class User { // ... } const user1 = new User(); الآن أريد عمل شرط للتأكد من أن المتغير user1 عبارة عن نسخة instance من الصنف User، كيف أقوم بهذا الأمر؟ 2 اقتباس
1 سامح أشرف نشر 28 مايو 2022 أرسل تقرير نشر 28 مايو 2022 توفر لغة JavaScript العديد من الطرق التي تُمكنك من التأكد من نوع كائن Object معين، هنا بعضها: إستخدام typeof تستخدم هذه الطريقة للتأكد من أن متغير ما عبارة عن كائن Object من صنف آخر: class User {} const user1 = new User(); typeof User; // 'function' typeof user1; // 'object' إستخدام instanceof توفر هذه الطريقة إمكانية التأكد من أن كائن Object معين عبارة عن نسخة instance من صنف ما: user1 instanceof User; // true user1 instanceof Array; // false التابع isPrototypeOf بما أن لغة JavaScript تعتمد بشكل أساسي على prototype، فيمكننا إستخدام التابع isPrototypeOf للتأكد من أن كائن ما عبارة عن نسخة من صنف معين: User.prototype.isPrototypeOf(user1); // true إستخدام constructor.name هذه طريقة مختلفة لأداء نفس مهمة instanceof السابقة: user1.constructor.name === "User"; // true ملاحظة: لا يًفصل إستعمال هذه الطريقة إذا كنت تستعمل أدوات مثل Uglify أو minify التي تغير أسماء الأصناف لتصبح أقصر، لكن يمكن في هذه الحالة إستخدام المقارنة المباشرة باسم الصنف class بدون مشكلة على النحو التالي: user1.constructor.name; // == "User" User.name; // User user1.constructor.name === User.name; // true 2 اقتباس
السؤال
Emad Saif
يمكننا عمل كائنات Objects من صنف Class معين عبر الكلمة المفتاحية new في جافاسكريبت:
الآن أريد عمل شرط للتأكد من أن المتغير user1 عبارة عن نسخة instance من الصنف User، كيف أقوم بهذا الأمر؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.