JavaScript માં `કૉલ` અને `એપ્લાય` વચ્ચેના તફાવતને સમજવું

JavaScript માં `કૉલ` અને `એપ્લાય` વચ્ચેના તફાવતને સમજવું
JavaScript

JavaScript માં ફંક્શન ઇન્વોકેશન પદ્ધતિઓ

JavaScript ફંક્શનને શરૂ કરવાની ઘણી રીતો પ્રદાન કરે છે, જેમાંથી બે છે `Function.prototype.call()` અને `Function.prototype.apply()`. બંને પદ્ધતિઓ ઉલ્લેખિત `આ` મૂલ્ય અને દલીલો સાથે ફંક્શનને કૉલ કરવા માટે સેવા આપે છે, પરંતુ આ દલીલો કેવી રીતે પસાર થાય છે તેમાં તેઓ અલગ પડે છે.

આ લેખનો હેતુ `કૉલ` અને `એપ્લાય` વચ્ચેના તફાવતો, તેમની કામગીરીની અસરો અને દૃશ્યો જ્યાં એકને બીજા કરતાં પ્રાધાન્ય આપવામાં આવે છે તે શોધવાનો છે. અંત સુધીમાં, તમને તમારા JavaScript કોડમાં ક્યારે `કૉલ` અથવા `એપ્લાય`નો ઉપયોગ કરવો તેની સ્પષ્ટ સમજણ હશે.

JavaScript માં `કૉલ` અને `એપ્લાય` વચ્ચેના તફાવતોનું અન્વેષણ કરવું

JavaScript ફ્રન્ટએન્ડ ઉદાહરણ

// Example of Function.prototype.call()
const person = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
};

const person1 = {
  firstName: "John",
  lastName: "Doe"
};

console.log(person.fullName.call(person1)); // John Doe

JavaScript માં `કૉલ` વિ `લાગુ` ની કામગીરીને સમજવી

JavaScript ફ્રન્ટએન્ડ ઉદાહરણ

// Example of Function.prototype.apply()
const person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + ", " + city + ", " + country;
  }
};

const person2 = {
  firstName: "Jane",
  lastName: "Doe"
};

console.log(person.fullName.apply(person2, ["Oslo", "Norway"])); // Jane Doe, Oslo, Norway

JavaScript માં ફંક્શન ઇન્વોકેશન માટે `કૉલ` અને `અરજી કરો` ની સરખામણી કરવી

Node.js બેકએન્ડ ઉદાહરણ

const person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + ", " + city + ", " + country;
  }
};

const person3 = {
  firstName: "Alice",
  lastName: "Smith"
};

function printName(method) {
  if (method === 'call') {
    console.log(person.fullName.call(person3, 'Paris', 'France'));
  } else if (method === 'apply') {
    console.log(person.fullName.apply(person3, ['Paris', 'France']));
  }
}

printName('call');  // Alice Smith, Paris, France
printName('apply'); // Alice Smith, Paris, France

JavaScript ડેવલપમેન્ટમાં `કૉલ` અને `એપ્લાય` વચ્ચેની પસંદગી

જાવાસ્ક્રિપ્ટ પ્રદર્શન વિશ્લેષણ

const iterations = 1000000;
const person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + ", " + city + ", " + country;
  }
};
const person4 = {
  firstName: "Bob",
  lastName: "Brown"
};

console.time('call');
for (let i = 0; i < iterations; i++) {
  person.fullName.call(person4, 'Berlin', 'Germany');
}
console.timeEnd('call');

console.time('apply');
for (let i = 0; i < iterations; i++) {
  person.fullName.apply(person4, ['Berlin', 'Germany']);
}
console.timeEnd('apply');

JavaScript માં કૉલ અને પદ્ધતિઓ લાગુ કરવા માટે ઊંડી સમજ

તેમના મૂળભૂત ઉપયોગ ઉપરાંત, Function.prototype.call() અને Function.prototype.apply() તમારા JavaScript પ્રોગ્રામિંગને વધારી શકે તેવા ઘણા અદ્યતન ઉપયોગના કેસો છે. આવા ઉપયોગનો એક કેસ પદ્ધતિ ઉધાર છે, જ્યાં એક ઑબ્જેક્ટમાંથી પદ્ધતિઓ બીજા દ્વારા ઉધાર લેવામાં આવે છે. આ ખાસ કરીને ઉપયોગી છે જ્યારે તમારી પાસે કોઈ ઑબ્જેક્ટ હોય જેને વારસા વિના અન્ય ઑબ્જેક્ટમાંથી પદ્ધતિનો ઉપયોગ કરવાની જરૂર હોય. ઉપયોગ કરીને call() અને apply(), તમે અસ્થાયી રૂપે પદ્ધતિઓ ઉછીના લઈ શકો છો અને તેને વિવિધ ઑબ્જેક્ટના સંદર્ભમાં એક્ઝિક્યુટ કરી શકો છો, જેનાથી કોડની પુનઃઉપયોગિતામાં વધારો થાય છે અને રીડન્ડન્સીમાં ઘટાડો થાય છે.

ધ્યાનમાં લેવાનું બીજું મહત્વનું પાસું એ ઉપયોગ છે apply() વૈવિધ્યસભર કાર્યો માટે-ફંક્શન્સ કે જે દલીલોની ચલ સંખ્યાને સ્વીકારે છે. જ્યારે તમારી પાસે દલીલોની હારમાળા હોય અને તમારે તેમને એવા ફંક્શનમાં પાસ કરવાની જરૂર હોય કે જે એરેને સ્વીકારતું નથી, apply() અત્યંત સરળ બને છે. બીજી બાજુ, call() જ્યાં કામગીરી નિર્ણાયક હોય અને દલીલોની સંખ્યા જાણીતી અને નિશ્ચિત હોય તેવા સંજોગોમાં ઉપયોગી થઈ શકે છે. આ ઘોંઘાટને સમજીને, વિકાસકર્તાઓ ક્યારે ઉપયોગ કરવો તે વિશે વધુ માહિતગાર નિર્ણયો લઈ શકે છે call() વિરુદ્ધ apply(), વાંચનક્ષમતા અને પ્રદર્શન બંને માટે તેમના કોડને ઑપ્ટિમાઇઝ કરી રહ્યાં છે.

JavaScript માં કૉલ અને અરજી વિશે વારંવાર પૂછાતા પ્રશ્નો

  1. વચ્ચે પ્રાથમિક તફાવત શું છે call() અને apply()?
  2. call() વ્યક્તિગત રીતે દલીલો સ્વીકારે છે, જ્યારે apply() દલીલોને એરે તરીકે સ્વીકારે છે.
  3. કરી શકે છે call() અને apply() એકબીજાના બદલે વાપરી શકાય?
  4. હા, તેઓ સમાન પરિણામ પ્રાપ્ત કરી શકે છે, પરંતુ પસંદગી દલીલોની રચના કેવી રીતે કરવામાં આવે છે તેના પર આધાર રાખે છે.
  5. મારે ક્યારે પસંદ કરવું જોઈએ apply() ઉપર call()?
  6. વાપરવુ apply() જ્યારે તમારી પાસે દલીલોની શ્રેણી અથવા દલીલોની ચલ સંખ્યા હોય.
  7. વચ્ચે પ્રદર્શન તફાવત છે call() અને apply()?
  8. પ્રદર્શન તફાવતો મોટા ભાગના કિસ્સાઓમાં નહિવત્ છે, પરંતુ call() દલીલોની નિશ્ચિત સંખ્યા સાથે સહેજ ઝડપી થઈ શકે છે.
  9. કેવી રીતે કરવું call() અને apply() હેન્ડલ કરો this સંદર્ભ?
  10. બંને પદ્ધતિઓ સ્પષ્ટપણે સેટ કરે છે this ફંક્શન ઇન્વોકેશન માટે સંદર્ભ.
  11. શું હું ઉપયોગ કરી શકું call() અને apply() કન્સ્ટ્રક્ટર કાર્યો સાથે?
  12. ના, તેઓ કન્સ્ટ્રક્ટર ફંક્શન્સ માટે યોગ્ય નથી કારણ કે તેઓ નવા દાખલા બનાવતા નથી.
  13. કેટલાક અદ્યતન ઉપયોગના કિસ્સાઓ શું છે call() અને apply()?
  14. તેઓ પદ્ધતિ ઉધાર લેવા અને વૈવિધ્યસભર કાર્યોને સંભાળવા માટે ઉપયોગી છે.
  15. કેવી રીતે call() કોડ વાંચનક્ષમતા સુધારવા?
  16. call() જ્યારે દલીલોની સંખ્યા જાણીતી અને નિશ્ચિત હોય ત્યારે ફંક્શન ઇન્વોકેશનને સ્પષ્ટ બનાવે છે.
  17. કરી શકે છે apply() અજ્ઞાત સંખ્યામાં દલીલોને હેન્ડલ કરો છો?
  18. હા, apply() વિધેયો માટે આદર્શ છે કે જે દલીલોની ચલ સંખ્યાને હેન્ડલ કરવાની જરૂર છે.

ફંક્શન ઇન્વોકેશન મેથડ્સ પર અંતિમ વિચારો

નિષ્કર્ષમાં, બંને call અને apply પદ્ધતિઓ એ જાવાસ્ક્રિપ્ટમાં નિર્દિષ્ટ સાથે કાર્યોને બોલાવવા માટે શક્તિશાળી સાધનો છે this મૂલ્ય તેમની વચ્ચેની પસંદગી મોટાભાગે તમે ફંક્શનમાં દલીલો કેવી રીતે પસાર કરવા માંગો છો તેના પર આધાર રાખે છે. જ્યારે call નિશ્ચિત સંખ્યામાં દલીલો સાથે કામ કરતી વખતે શ્રેષ્ઠ છે, apply અરે અથવા અજ્ઞાત સંખ્યામાં દલીલો સંભાળતી વખતે ચમકે છે. આ ઘોંઘાટને સમજવાથી વધુ કાર્યક્ષમ અને વાંચી શકાય તેવા કોડ લખવામાં મદદ મળે છે, જે આખરે વધુ સારી JavaScript પ્રોગ્રામિંગ પ્રેક્ટિસ તરફ દોરી જાય છે.