के भीतर से "यह" संदर्भित करना कुछ मुझे हमेशा जावास्क्रिप्ट में ऑब्जेक्ट-उन्मुख कोडिंग के तरीके के बारे में परेशान करता है। बंद, अतिरिक्त चर alway लग रहा था ... मेरे लिए अत्यधिक बनानेजावास्क्रिप्ट कॉलबैक
MyClass.prototype.doSomething = function(obj, callback) {
var me = this; // ugh
obj.loadSomething(function(err, result) {
me.data = result; // ugh
callback(null, me);
});
}
पहले: वहाँ एक कॉलबैक है, मैं अक्सर वस्तु जो मूल रूप से समारोह कहा जाता है, जो मुझे इस तरह कुछ करने के लिए सुराग का संदर्भ लेना चाहते। इसके अलावा, मुझे आश्चर्य है कि क्या यह "मुझे" वैरिएबल को वापस कॉलबैक में पास करके समस्याएं (परिपत्र संदर्भ? Un-GCd ऑब्जेक्ट्स?) उत्पन्न कर सकता है।
क्या इस बारे में जाने का कोई बेहतर तरीका है? क्या यह दृष्टिकोण बुरा है?
'यह' एक चर नहीं है। 'यह' बंद नहीं किया जा सकता है। दृष्टिकोण ठीक है। –
"बुराई" और "अत्यधिक" के बारे में एफयूडी मुझे परेशान करता है। बॉयलरप्लेट की तरह नहीं है, लेकिन इसके साथ काल्पनिक समस्याओं का आविष्कार क्यों करें? आपको उसी संलग्न डेटा के संदर्भ को बनाए रखना होगा, इससे कोई फर्क नहीं पड़ता कि आप किस दृष्टिकोण का उपयोग करते हैं, क्योंकि आंतरिक फ़ंक्शन नहीं बदलता है। चाहे आप केवल कम से कम डेटा का संदर्भ रख सकें, कुछ ऐसा है जो दुभाषिया को चिंता करनी चाहिए। – millimoose
@millimoose अच्छी तरह से कहा - मैं उस अंतिम पंक्ति को सारांशित करने के लिए एक रास्ते के साथ आने में विफल रहा। (और मैं अभी भी "बुराई" में भाग लेता हूं - अच्छी तरह से "बुराई" नहीं, बल्कि वास्तव में बहुत ही मज़ेदार तरीके से भयानक - कोड जो 'नए फंक्शन ("..") का उपयोग करता है "मुद्दों से बचें"। –