يعتمد JavaScript على خصائص العديد من اللغات ؛ على سبيل المثال ، بناء الجملة java ، تعتمد الوظائف على المخطط ، ويرسم ميراث النموذج الأولي من الذات ، والتعبير المنتظم من Perl. (DC JavaScript: Essence Language).
أولاً ، كل JS هي لغة موجهة نحو الكائن تعتمد على ميراث النموذج الأولي. الصفيف داخل هو كائن ، والوظيفة هي كائن ، وبالطبع لا يزال "الكائن" كائنًا. علاوة على ذلك ، يحتوي كل كائن على فتحة داخلية [[النموذج الأولي]] ، وهو المفتاح لتوصيل سلسلة النموذج الأولي. من المسلم به ، يمكننا تعيين خاصية النموذج الأولي لكائن ، ولكن ماذا في ذلك؟ هذا مجرد مظهر من مظاهر. هناك نية قاتلة خفية وراءه.
حسنًا ، يمكنني استخدام النمط isprototypeof () للتحقق مما إذا كان الكائن نموذجًا أوليًا لكائن آخر ؛ ومع ذلك ، يعتمد هذا أيضًا على سلسلة [[النموذج الأولي]].
على سبيل المثال:
// إنشاء دالة FOOO () {} // تعديل خاصية النموذج الأولي للوظيفة foo.prototype = {name: "foo.prototype"} ؛ // إنشاء مثيل var a = new foo () ؛ // أعد كتابة النموذج الأولي الافتراضي لـ A ، والذي كان ينبغي أن يكون foo.prototype. A.Prototype = {name: "A.Prototype"} ؛والسؤال التالي هو ما إذا كان النموذج foo.prototype هو النموذج الأولي لـ A؟ !
يجب عرض هذا بشكل منفصل: من ناحية واحدة ، فإن النمط النمطي هو بالفعل {name: "A.Prototype"} ؛ ومع ذلك ، فإن النتيجة foo.prototype.isprototypeof (A) صحيحة.
دعنا نلقي نظرة على العلاقة المحددة: (استخدام ---> يعني سلسلة [[النموذج الأولي]] ، --- يعني علاقة خاصية النموذج الأولي)
الوظيفة ---> function.prototype ---> Object.prototype
function.prototype <--- foo ---- foo.prototype ------> object.prototype.
بالإضافة إلى ذلك ، [[protptype]] من العدد ، لا يزال Boolean ، String ، وما إلى ذلك ، كائن النمط. كائن النمط. النموذج هو "دالة" ، ولا يحتوي على [[بنية]] في الداخل ، لذلك لا يمكن استخدامه كمشارك ؛ في الواقع ، Function.prototype مشابه: function () {}. بالإضافة إلى الفتحة الداخلية [[النموذج الأولي]] ، يحتوي نوع "الوظيفة" أيضًا على سمة النموذج الأولي. تحتوي كل وظيفة دائمًا على كائن نموذج أولي: this.prototype = {constructor: this} (كائن عادي). يتم توصيل [[النموذج الأولي]] من هذا الكائن الطبيعي بالكائن.
هل [[النموذج الأولي]] لكائن المثيل الذي تم إنشاؤه بواسطة مُنشئ كائن.
تتم تهيئة [[النموذج الأولي]] من هذه المثيل بواسطة خاصية النموذج الأولي للمُنشئ. لاحظ أنه ليس [[النموذج الأولي]] للوظيفة. لذلك إذا كان كائنًا تم إنشاؤه بواسطة وظيفة الكائن ، فهو بالفعل.
الكائن هو وظيفة ، النموذج الأولي هو الكائن الشهير. النمط النمط (هراء قليلاً) ، ولكن [[النموذج الأولي]] يشير إلى وظيفة. يرجى الاطلاع أدناه:
Object -----> function.prototype ------> Object.prototype.
كيفية تغيير هذا [[النموذج الأولي]] سلسلة؟
يمكن أن يكون في شكل var a = object.create (obj) أو object.setPrototypeof (obja ، objb). لا أعتقد أن هناك أي حاجة لإعطاء أمثلة ، لأن العلاقة بسيطة للغاية ؛ دعونا نعطي فقط بعض الأمثلة المجنونة. لا معنى.
السؤال الأخير هو ، هل الوفد السلوكي يعتمد على سلسلة [[النموذج الأولي]]؟
نعم ، هذا هو الحال.