كيف تعمل الكلمة المفتاحية `this` في JavaScript ومتى يجب استخدامها؟
مرحباً بالجميع! أنا مبتدئ في JavaScript وأخلط دائماً بين استخدام الكلمة المفتاحية `this`. قرأت التوثيق لكنه يبدو معقداً جداً. لدي هذا الكود:
```javascript
const user = {
name: 'آنا',
greet: function() {
console.log('مرحباً، ' + this.name);
}
};
const greetFunc = user.greet;
user.greet(); // يطبع "مرحباً، آنا" — يعمل!
greetFunc(); // يطبع "مرحباً، undefined" — لماذا؟
```
عندما أستدعي `user.greet()`، كل شيء يعمل. لكن عندما أحفظ الميثود في متغير وأستدعيه، يصبح `this.name` مساوياً `undefined`. لماذا يحدث هذا؟ وأيضاً: سمعت أن `this` يتصرف بشكل مختلف في arrow functions مقارنة بالدوال العادية. كيف يمكنني فهم ما سيشير إليه `this` في الكود الخاص بي؟ متى يجب استخدام `this` أصلاً، ومتى يكون من الأفضل تمرير المتغيرات مباشرة؟