جاوا اسکرپٹ میں 'کال' اور 'اپلائی' کے درمیان فرق کو سمجھنا

جاوا اسکرپٹ میں 'کال' اور 'اپلائی' کے درمیان فرق کو سمجھنا
JavaScript

جاوا اسکرپٹ میں فنکشن انووکیشن کے طریقے

JavaScript فنکشنز کو شروع کرنے کے کئی طریقے پیش کرتا ہے، جن میں سے دو ہیں `Function.prototype.call()` اور`Function.prototype.apply()`۔ دونوں طریقے ایک مخصوص `یہ` قدر اور دلائل کے ساتھ فنکشنز کو کال کرنے کا کام کرتے ہیں، لیکن ان میں فرق ہے کہ ان دلائل کو کیسے پاس کیا جاتا ہے۔

اس مضمون کا مقصد 'کال' اور 'لاگو' کے درمیان فرق، ان کی کارکردگی کے مضمرات، اور ایسے منظرناموں کو تلاش کرنا ہے جہاں ایک کو دوسرے پر ترجیح دی جائے۔ آخر تک، آپ کو اپنے 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

جاوا اسکرپٹ میں `کال` بمقابلہ `اپلائی` کی کارکردگی کو سمجھنا

جاوا اسکرپٹ فرنٹ اینڈ کی مثال

// 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

جاوا اسکرپٹ میں فنکشن انووکیشن کے لیے 'کال' اور 'درخواست' کا موازنہ کرنا

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

جاوا اسکرپٹ ڈویلپمنٹ میں 'کال' اور 'اپلائی' کے درمیان انتخاب کرنا

جاوا اسکرپٹ کی کارکردگی کا تجزیہ

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');

کال کے بارے میں گہری بصیرت اور جاوا اسکرپٹ میں طریقوں کو لاگو کریں۔

ان کے بنیادی استعمال کے علاوہ، Function.prototype.call() اور Function.prototype.apply() آپ کے جاوا اسکرپٹ پروگرامنگ کو بہتر بنانے کے لیے کئی جدید استعمال کے معاملات ہیں۔ اس طرح کا ایک استعمال کا معاملہ طریقہ ادھار ہے، جہاں ایک چیز سے طریقے دوسری چیز سے مستعار لیے جاتے ہیں۔ یہ خاص طور پر مفید ہے جب آپ کے پاس کوئی شے ہو جسے وراثت کے بغیر کسی اور چیز سے طریقہ استعمال کرنے کی ضرورت ہو۔ استعمال کرنا call() اور apply()، آپ عارضی طور پر طریقے ادھار لے سکتے ہیں اور مختلف اشیاء کے تناظر میں ان پر عمل درآمد کر سکتے ہیں، اس طرح کوڈ کی دوبارہ استعمال کی اہلیت کو بڑھا سکتے ہیں اور فالتو پن کو کم کر سکتے ہیں۔

غور کرنے کے لئے ایک اور اہم پہلو کا استعمال ہے۔ apply() متغیر فنکشنز کے لیے - وہ فنکشن جو دلائل کی متغیر تعداد کو قبول کرتے ہیں۔ جب آپ کے پاس دلائل کی ایک صف ہے اور آپ کو انہیں کسی ایسے فنکشن میں منتقل کرنے کی ضرورت ہے جو کسی صف کو قبول نہیں کرتا ہے، apply() بہت آسان ہو جاتا ہے. دوسری جانب، call() ایسے منظرناموں میں کارآمد ہو سکتا ہے جہاں کارکردگی اہم ہو، اور دلائل کی تعداد معلوم اور مقرر ہو۔ ان باریکیوں کو سمجھ کر، ڈویلپر استعمال کرنے کے بارے میں مزید باخبر فیصلے کر سکتے ہیں۔ call() بمقابلہ apply()پڑھنے کی اہلیت اور کارکردگی دونوں کے لیے ان کے کوڈ کو بہتر بنانا۔

جاوا اسکرپٹ میں کال کرنے اور اپلائی کرنے کے بارے میں اکثر پوچھے جانے والے سوالات

  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 arrays یا دلائل کی ایک نامعلوم تعداد کو سنبھالتے وقت چمکتا ہے۔ ان باریکیوں کو سمجھنے سے زیادہ موثر اور پڑھنے کے قابل کوڈ لکھنے میں مدد ملتی ہے، جو بالآخر بہتر JavaScript پروگرامنگ کے طریقوں کا باعث بنتی ہے۔