سؤال

var UI$Contract$ddlForm_change = function() {

    //'this' is currently the drop down that fires the event
    // My question is can I change the context so "this" represents another object? 
    this = SomeObject;

    // then call methods on the new "this"
    this.someMethod(someParam);   
};

هل هذا ممكن؟

هل كانت مفيدة؟

المحلول

لا هذا ليس مستحيل.

يمكنك استدعاء طريقة ذات قيمة محددة لـ هذا (استخدام method.apply()/method.call()) ولكن لا يمكنك إعادة تعيين الكلمة الأساسية، this.

نصائح أخرى

ولا يمكنك تغيير ما يشير إلى this من داخل وظيفة.

ولكن، يمكنك <م> دعوة وظيفة في سياق محدد - لذلك يشير أن this لكائن معين - باستخدام call أو apply

وJ-P هو الصحيح. هذا غير ممكن. الرجوع إلى وثيقة مواصفات لغة جافا سكريبت ECMA-262. يمكنك تنزيل مستوى من هنا:

http://www.ecma-international.org/publications/ معايير / الجمعية المصرية-262.htm

والملف هو ECMA-262.pdf وفي الصفحة 39، القسم 10.1.7.

<اقتباس فقرة>   

و10.1.7 هذا

     

وهناك هذه القيمة المرتبطة   كل سياق التنفيذ النشط. ال   تعتمد هذه القيمة على المتصل و   نوع من التعليمات البرمجية يتم تنفيذه وهو   تحديد عندما تدخل سيطرة   سياق التنفيذ. وهذه القيمة   المرتبطة سياق التنفيذ   هو غير قابل للتغيير.

ملحوظة "هو غير قابل للتغيير". أي لا يمكن تغييرها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top