يدعم ECMASCript6 الفئة بالفعل ، ولكن لا يوجد أي من فئات دعم الإصدارات السابقة ، ولكن يمكن استخدام بعض الطرق لمحاكاة الفصول.
تعد الفصول الدراسية في JS نقاطًا رئيسية ونقاط صعبة ، وغالبًا ما تشعر غامضة.
أولاً ، أود التأكيد على ثلاث نقاط معرفة مهمة للغاية في JS: هذا ، النموذج الأولي ، والمؤسس.
دعونا نلخص طرق تحديد فصول (محاكاة):
1. نموذج المصنع
دالة createObject (الاسم ، العمر) {var obj = new Object () ؛ obj.name = الاسم ؛ obj.age = العمر ؛ obj.getName = function () {return this.name ؛ } ؛ obj.getage = function () {return this.age ؛ } return obj ؛} var obj2 = createObject ("wang wu" ، 19) ؛ console.log (obj2.getName ()) ؛ console.log (obj2.getage ()) ؛ console.log (obj2.contructor) ؛طريقة وضع المصنع تنشئ كائن. يمكن لوضع المصنع إنشاء كائن يحتوي على المعلومات اللازمة بناءً على المعلمات المقبولة. يمكن تسمية هذه الطريقة بشكل لا نهائي عدة مرات ، وفي كل مرة تقوم بإرجاع كائن يحتوي على سمتين وطريقتين. يحل نمط المصنع مشكلة إنشاء كائنات مماثلة ، لكنه لا يحل مشكلة التعرف على الكائن ، أي أن فئة الكائن لا يمكن تحديدها وتوحيدها في كائن.
2. طريقة المنشئ
وظيفة الشخص (الاسم ، العمر ، الوظيفة) {this.name = name ؛ this.age = العمر ؛ this.job = Job ؛} person.prototype = {constructor: person ، getName: function () {return this.name ؛ } ، getage: function () {return this.age ؛ } ، getJob: function () {return this.job ؛ }} var p = شخص جديد ("ermazi" ، 18 ، "عامل") ؛ console.log (p.constructor) ؛ console.log (p.getName ()) ؛ console.log (p.getage ()) ؛ console.log (p.getjob ()) ؛على الرغم من أن طريقة المنشئ تحدد مشكلة ملكية الكائن ويمكنها تحديد نوع الكائن ، إلا أن الأساليب في المنشئ تحتاج إلى إعادة إنشاء في كل كائن ، مما يؤدي إلى بعض مشاكل الأداء.
3. وضع النموذج الأولي
وظيفة person () {} person.prototype = {مُنشئ: الشخص ، الاسم: "Zhang San" ، العمر: 21 ، الوظيفة: "المعلم" ، getName: function () {return this.name ؛ } ، getJob: function () {return this.job ؛ }} var p = new person () ؛ console.log (p.getName ()) ؛ // Zhang San Console.log (p.getJob ()) ؛ // teachervar p2 = new person () ؛ p2.name = "li si" ؛ console.log (p2.getName ()) ؛ // لي سيمن رمز المثيل ، يمكننا أن نعرف أن مثيل الكائن يمكنه الوصول إلى القيمة في النموذج الأولي ، ولكن لا يمكن إعادة كتابة القيمة في النموذج الأولي. إذا تم تعريف السمة التي يتم تكرارها بالنموذج الأولي في مثيل الكائن ، فإن السمة ستحظر السمة في النموذج الأولي ، ولكن لن يتم إعادة كتابة.
4. التغليف (دعنا نسميها الآن)
var dog = {createog: function () {var dog = {} ؛ dog.name = "wangwang" ؛ dog.sayhello = function () {console.log ("Hello World!") ؛ } ؛ عودة الكلب }} ؛ var dog = dog.createdog () ؛ Dog.Sayhello () ؛هو تغليف جميع الكود وإرجاع كائن المثيل ككل ، وهو يشبه إلى حد ما نمط المصنع.
الطرق العديدة أعلاه (الموصى بها) من فئات تعريف JS هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.