फंक्शन रैपर @CMS के साथ तैयार शॉर्टकट (सिन्गनेटिक शुगर) के साथ हैं। (यह मानते हुए कि आप जो संदर्भ चाहते हैं वह नीचे है this.tip
।)
यदि आप ECMA-262, 5th संस्करण (ECMAScript 5) या Node.js के साथ संगत ब्राउज़र को लक्षित करते हैं , तो आप उपयोग कर सकते हैं Function.prototype.bind
। आंशिक कार्यों को बनाने के लिए आप वैकल्पिक रूप से किसी भी फ़ंक्शन तर्क पास कर सकते हैं ।
fun.bind(thisArg[, arg1[, arg2[, ...]]])
फिर से, आपके मामले में, यह कोशिश करें:
if (this.options.destroyOnHide) {
setTimeout(this.tip.destroy.bind(this.tip), 1000);
}
प्रोटोटाइप (किसी अन्य लाइब्रेरी?) में भी यही कार्यक्षमता लागू की गई है ।
Function.prototype.bind
यदि आप कस्टम बैकवर्ड संगतता चाहते हैं, तो इसे इस तरह लागू किया जा सकता है (लेकिन कृपया नोट देखें)।
अत्याधुनिक विकास (2015) के लिए आप वसा तीर फ़ंक्शंस का उपयोग कर सकते हैं , जो ECMAScript 2015 (हार्मनी / ES6 / ES2015) विनिर्देश ( उदाहरण ) का हिस्सा हैं।
एक तीर समारोह अभिव्यक्ति (भी रूप में जाना जाता वसा तीर समारोह ) समारोह भाव की तुलना में एक छोटा वाक्यविन्यास है और lexically बांधता this
मूल्य [...]।
(param1, param2, ...rest) => { statements }
आपके मामले में, यह कोशिश करें:
if (this.options.destroyOnHide) {
setTimeout(() => { this.tip.destroy(); }, 1000);
}
यदि आप पहले से ही jQuery 1.4+ का उपयोग कर रहे हैं, तो किसी फ़ंक्शन के this
संदर्भ को स्पष्ट रूप से सेट करने के लिए तैयार फ़ंक्शन है।
jQuery.proxy () : एक फ़ंक्शन लेता है और एक नया रिटर्न देता है जिसमें हमेशा एक विशेष संदर्भ होगा।
$.proxy(function, context[, additionalArguments])
आपके मामले में, यह कोशिश करें:
if (this.options.destroyOnHide) {
setTimeout($.proxy(this.tip.destroy, this.tip), 1000);
}
यह अंडरस्कोर.जे में उपलब्ध है, साथ ही साथ _.bind(...)
1 , 2 भी दर्ज है
किसी कार्य को किसी वस्तु से बांधें , जिसका अर्थ है कि जब भी फ़ंक्शन को बुलायाthis
जाएगा, तो वस्तुका मूल्यहोगा। वैकल्पिक रूप से, फ़ंक्शन को पूर्व-भरने के लिए तर्क बाँधें, जिसे आंशिक अनुप्रयोग के रूप में भी जाना जाता है।
_.bind(function, object, [*arguments])
आपके मामले में, यह कोशिश करें:
if (this.options.destroyOnHide) {
setTimeout(_.bind(this.tip.destroy, this.tip), 1000);
}
बाँध jQuery Underscore.js ECMAScript -5 prototypejs Node.js