JavaScript में call और apply में क्या अंतर है? कब क्या उपयोग करें?
सभी को नमस्ते! मैंने JavaScript सीखना शुरू किया और call और apply methods पर ध्यान गया। मैं समझता हूँ कि दोनों ही किसी फंक्शन को निर्दिष्ट context (this value) के साथ call करने की अनुमति देते हैं, लेकिन मैं उनके बीच मूलभूत अंतर नहीं पकड़ पा रहा हूँ।
मान लीजिए, मेरे पास एक सरल object और function है:
```javascript
const person = {
firstName: 'Иван',
lastName: 'Петров'
};
function greet(greeting, punctuation) {
console.log(`${greeting}, ${this.firstName} ${this.lastName}${punctuation}`);
}
```
मैं इस function को call के माध्यम से call कर सकता हूँ:
```javascript
greet.call(person, 'Привет', '!'); // Привет, Иван Петров!
```
और apply के माध्यम से:
```javascript
greet.apply(person, ['Привет', '!']); // Привет, Иван Петров!
```
परिणाम समान है। मैंने पढ़ा है कि अंतर arguments को pass करने के तरीके में है: call — comma से अलग करके, apply — array के रूप में। लेकिन क्या यह सिर्फ syntactic sugar है? या कुछ व्यावहारिक scenarios हैं जहाँ apply अपरिहार्य है? उदाहरण के लिए, मैंने array methods के 'faking' या काम करने के बारे में सुना है।