في JS ، يجب أن يكون هذا الإشارة مشكلة صعبة للمبتدئين ، ولكن إذا فهمت ذلك حقًا ، فلن تكون هناك مشكلة. دعنا نتحدث عن هذا أدناه.
في JS ، تعتمد قيمة هذا على نمط المكالمة (كائن الاتصال) ، وهناك 4 أنواع من أنماط الاتصال في JS:
1. وضع استدعاء الوظيفة
عندما لا تكون الوظيفة خاصية كائن ، تسمى كدالة مرتين. في هذا الوقت ، يشير هذا في الوظيفة إلى الكائن العالمي (في حالة لوغاريتم كبير ، إنه نافذة)
window.value = 1 ؛ وظيفة getValue () {console.log (this.value) ؛} getValue () ؛ // الإخراج 1 ، هذه النقطة إلى النافذة2. وضع استدعاء الطريقة
عندما تكون الوظيفة خاصية كائن ، نسميها طريقة للكائن. عندما يتم استدعاء طريقة ، يشير هذا إلى الكائن
var obj = {value: 2 ، getValue: function () {console.log (this.value) ؛ // output 2 ، هذا يشير إلى OBJ}}! ! ! في هذا الوضع ، يحدث ربط هذا للكائن عندما يتم استدعاء الطريقة
3. وضع مكالمات المنشئ
تسمى الوظيفة المسمى مع جديد وظيفة المنشئ. في هذا الوقت ، يشير هذا إلى الكائن الذي يأتي من مثيل وظيفة المنشئ
الدالة الرئيسية (Val) {this.value = val ؛} main.prototype.getValue = function () {console.log (this.value) ؛} var fun = new main (3) ؛ fun.getValue () ؛ fun.value ؛4. تطبيق/وضع الاتصال وربط
تتيح لنا أساليب التطبيق والاتصال والربط ضبط من يشير إلى هذا المتصل إلى
دالة showvalue () {console.log (this.value) ؛} var obj = {value: 4} showvalue.call (obj) // output 4 ، هذا يشير إلى كائن OBJتمت إضافة طريقة ربط جديدة في ECMA5. يمكنك جوجل الاستخدام المحدد. هنا مظاهرة لاستخدام هذا الربط.
دالة showvalue () {console.log (this.value) ؛} var obj = {value: 4} var showvalue2 = showvalue.bind (obj) ؛ showvalue2 () // output 4 ، هذا يشير إلى كائن OBJهناك العديد من استخدامات الربط ، يمكنك التحقق من ذلك بنفسك
الكليشيه أعلاه يتحدث عن هذا في JS هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.