मुझे जावास्क्रिप्ट की बहुत अच्छी समझ है, सिवाय इसके कि मैं "यह" चर सेट करने के लिए एक अच्छा तरीका नहीं समझ सकता। विचार करें:
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
var old_fn = someObj.fn; //store old value
someObj.fn = myFunction; //bind to someObj so "this" keyword works
someObj.fn();
someObj.fn = old_fn; //restore old value
क्या अंतिम 4 लाइनों के बिना ऐसा करने का कोई तरीका है? यह बल्कि कष्टप्रद है ... मैंने एक अनाम फ़ंक्शन को बांधने की कोशिश की है, जो मुझे लगा कि सुंदर और चतुर था, लेकिन कोई फायदा नहीं हुआ:
var myFunction = function(){
alert(this.foo_variable);
}
var someObj = document.body; //using body as example object
someObj.foo_variable = "hi"; //set foo_variable so it alerts
someObj.(function(){ fn(); })(); //fail.
जाहिर है, चर को myFunction में पास करना एक विकल्प है ... लेकिन यह इस प्रश्न का बिंदु नहीं है।
धन्यवाद।
$.proxy(function, element)
ताकि जब भी उस फ़ंक्शन को कॉल किया जाए, तो यह तत्व के संदर्भ में होगा। api.jquery.com/jquery.proxy