Avatar ·

JavaScript में callback-फ़ंक्शन के अंदर `this` तक सही तरीके से कैसे पहुँचें?

सभी को नमस्ते! मैंने अभी JavaScript सीखना शुरू किया है और एक ऐसी समस्या का सामना कर रहा हूँ जिसे मैं हल नहीं कर पा रहा हूँ। मेरे पास एक ऑब्जेक्ट `user` है जिसमें एक प्रॉपर्टी `name` और एक मेथड `greet` है। मैं चाहता हूँ कि मेथड `greet` 2 सेकंड बाद उपयोगकर्ता के नाम के साथ अभिवादन प्रिंट करे। इसके लिए मैं `setTimeout` का उपयोग कर रहा हूँ। लेकिन जब मैं कोड चलाता हूँ, तो नाम के बजाय `undefined` प्रिंट होता है। यहाँ मेरा कोड है:\n\n```javascript\nconst user = {\n name: 'Анна',\n greet: function() {\n setTimeout(function() {\n console.log(`Привет, ${this.name}!`);\n }, 2000);\n }\n};\n\nuser.greet(); // Выводит "Привет, undefined!"\n```\n\nमैं समझता हूँ कि समस्या यह है कि `setTimeout` के अंदर callback-फ़ंक्शन में `this` का कॉन्टेक्स्ट खो जाता है। लेकिन मैं यह नहीं समझ पा रहा हूँ कि ऐसा क्यों होता है और इसे कैसे ठीक किया जाए। मैंने डॉक्यूमेंटेशन पढ़ने की कोशिश की, लेकिन वहाँ