سبب
لقد استخدمت النموذج الأولي.
Propype.JS شظية رمز
الرمز كما يلي:
فئة var = {
إنشاء: function () {
وظيفة الإرجاع () {
this.initialize.apply (هذا ، الحجج) ؛
}
}
}
// طريقة استخدام الفئة هي كما يلي
var a = class.create () ؛
A. النموذج الأولي = {
تهيئة: الدالة (V) {
هذا.
}
showvalue: function () {
تنبيه (this.value) ؛
}
}
var a = new a ('helloord!') ؛
أ.
ل تهيئة؟
ماذا تفعل طريقة تطبيق L؟
متغير الحجج؟
L لماذا يتم تنفيذ طريقة التهيئة بعد جديد؟
ابحث عن الجواب:
ثانياً ، كائن استهداف JS
ما هو التهيئة؟
إنه مجرد متغير ، يمثل طريقة ، والاستخدام هو مُنشئ الفصل.
يتم دعم الوظيفة المحددة بواسطة JS ، فما هو كائن JS؟ ما هو نفسه ومختلف عن جافا؟
انظر إلى الكود:
الرمز كما يلي:
نسخ رمز رمز على النحو التالي:
var className = function (v) {{
this.value = v ؛
this.getValue = function () {
إرجاع هذا.
}
this.setValue = function (v) {
this.value = v ؛
}
}
إذن ما هو الفرق بين الوظائف والفئات في JS؟
في الواقع ، هو نفسه.
يحب
الرمز كما يلي:
var ObjectName1 = new className ("a") ؛
من بينها ، ObjectName1 هو كائن تم الحصول عليه بعد تنفيذ مُنشئ اسم الفئة ، ويشير هذا في وظيفة اسم className إلى الكائن الذي تم إنشاؤه بعد الجديد ، لذلك سيكون للكائنات 1 سمة واحدة وطريقتين بعد ما يلي. يمكنك الاتصال بهم من خلال هذا:
الرمز كما يلي:
ObjectName1.setValue ('' hello '') ؛
التنبيه (ObjectName1.getValue ()) ؛
التنبيه (ObjectName1.value) ؛
لذا
الرمز كما يلي:
var ObjectName2 = className ("B") ؛
إذن ما الذي يحصل عليه ObjectName2؟ من الواضح أن قيمة الإرجاع للطريقة ، هنا يتم استخدام اسم className فقط كدالة عادية (على الرغم من أن الحرف الأول يتم رسملة). ولكن لا توجد قيمة إرجاع في اسم الفئة السابقة ، لذلك لن يتم النصر على ObjectName2 ، فمن الذي يعطيه "B"؟ لا يوجد شيء هنا ، ولكن مجرد تنفيذ هذه الطريقة ببساطة ، لذلك يتم تعيين "B" إلى نافذة الكائن التي تستدعي هذه الطريقة.
var ObjectName2 = className ("B") ؛
تنبيه (Window.value) ؛
لذا فإن جميع الوظائف في JS هي نفسها ، ولكن قد يكون الاستخدام مختلفًا (يستخدم لإنشاء كائنات أو تنفيذ عملية).
دعنا نعود إلى موضوع ما تفعله التهيئة؟
الرمز كما يلي:
نسخ رمز رمز على النحو التالي:
فئة var = {
إنشاء: function () {
وظيفة الإرجاع () {
this.initialize.apply (هذا ، الحجج) ؛
}
}
}
var a = class.create () ؛
هذا الرمز هو إنشاء نسخة دالة إلى A ، هذه الوظيفة هي
الرمز كما يلي:
نسخ رمز رمز على النحو التالي:
وظيفة () {
this.initialize.apply (هذا ، الحجج) ؛
}
ويستخدم الطريقة الأخيرة لصنع مُنشئ. عند استخدام هذا المُنشئ لإنشاء كائن ما ، سيسمح للسيارة الأولية () بتوضيح المتغير المتمثل في تنفيذ طريقة التطبيق (). وبهذه الطريقة ، سيتم الاتصال به عند تهيئة الكائنات (كيفية الاتصال بالتطبيق).
لذا
الرمز كما يلي:
نسخ رمز رمز على النحو التالي:
A.Prototype = {
تهيئة: الدالة (V) {
هذا.
}
showvalue: function () {
تنبيه (this.value) ؛
}
}
ماذا يعني ذلك؟
النموذج الأولي يعني "النموذج الأولي". A هي وظيفة () ، ثم A. النموذج الأولي هو متغير في الوظيفة ، وهو في الواقع كائن. ما هي الطريقة التي يمتلكها هذا الكائن ، فما الطريقة التي يتم إنشاؤها بواسطة الوظيفة؟
var a = new a ('helloord!') ؛
أ.
لذلك ، سيكون للكائن طريقة تهيئة. ') ، عادت التهيئة لاستدعاء طريقة التطبيق. هذه هي طريقة استدعاء التهيئة.
3. Call () و تطبيق ()
دعنا نبدأ في الدراسة تطبيق () ، والعثور على بعض المعلومات عبر الإنترنت ، ودمج البحث الخاص بك لفهم وظائف الاتصال () والتطبيق ().功能基本一样 , function () يتم تمرير معلمة الاتصال إلى Funciton من الثانية. يحتوي التطبيق على معلمتين فقط ، والثاني هو صفيف ، والذي يخزن جميع المعلمات التي تم تمريرها إلى الوظائف.
this.initialize.apply (هذا ، الحجج) ؛
ماذا يعني ذلك؟
الأول هذا يشير هنا إلى الكائن الذي تم إنشاؤه بعد استدعاء المُنشئ بمكالمة جديدة ، وهو ما هو السابق ، ثم الثاني الذي يجب أن يشير إلى نفس الكائن. ثم هذه الجملة هي (أي ، أ) استدعاء طريقة التهيئة ، والمعلمة هي كائن وسيطات (عدد صفيف المعلمات).
إذن كيف تمر معلمات طريقة التهيئة؟
رابعا ، الحجج كائن
يمكن أن يفسر هذا الرمز كل شيء:
الرمز كما يلي:
نسخ رمز رمز على النحو التالي:
اختبار الوظيفة () {
التنبيه (الحجج typeof) ؛
لـ (var i = 0 ؛ i <enduments.length ؛ i ++) {
تنبيه (الحجج [i]) ؛
}
}
اختبار ("1" ، "2" ، "3") ؛
اختبار ("A" ، "B") ؛
بعد التنفيذ ، يوضح التنبيه (الوسيطات typeof) الكائنات ، مما يشير إلى أن الوسائط هي كائنات. ثم العب 1 و 2 و 3 بدوره. اشرح أن الحجج هي مجموعة صلبة لاستدعاء الوظيفة.
الرمز كما يلي:
نسخ رمز رمز على النحو التالي:
فئة var = {
إنشاء: function () {
وظيفة الإرجاع () {
this.initialize.apply (هذا ، الحجج) ؛
}
}
}
الحجج هي المجموعة الصلبة من المنشئ الذي تم إرجاعه بواسطة إنشاء ، لذلك
var a = new a ('helloord!') ؛
في وقت "Hellooword!"