জাভাস্ক্রিপ্টে `কল` এবং `প্রয়োগ` এর মধ্যে পার্থক্য বোঝা

জাভাস্ক্রিপ্টে `কল` এবং `প্রয়োগ` এর মধ্যে পার্থক্য বোঝা
JavaScript

জাভাস্ক্রিপ্টে ফাংশন ইনভোকেশন পদ্ধতি

JavaScript ফাংশন চালু করার বিভিন্ন উপায় অফার করে, যার মধ্যে দুটি হল `Function.prototype.call()` এবং `Function.prototype.apply()`। উভয় পদ্ধতিই একটি নির্দিষ্ট `এই` মান এবং আর্গুমেন্ট সহ ফাংশনকে কল করতে পরিবেশন করে, কিন্তু এই আর্গুমেন্টগুলি কীভাবে পাস করা হয় তার মধ্যে তাদের পার্থক্য রয়েছে।

এই নিবন্ধটির লক্ষ্য হল `কল` এবং `প্রয়োগ` এর মধ্যে পার্থক্য, তাদের কর্মক্ষমতার প্রভাব, এবং পরিস্থিতি যেখানে একটিকে অন্যটির চেয়ে পছন্দ করা যেতে পারে। শেষ পর্যন্ত, আপনার জাভাস্ক্রিপ্ট কোডে কখন `কল` বা `আবেদন` ব্যবহার করতে হবে সে সম্পর্কে আপনার আরও পরিষ্কার ধারণা থাকবে।

জাভাস্ক্রিপ্টে 'কল' এবং 'প্রয়োগ'-এর মধ্যে পার্থক্যগুলি অন্বেষণ করা

জাভাস্ক্রিপ্ট ফ্রন্টএন্ড উদাহরণ

// 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 অ্যারে বা অজানা সংখ্যক আর্গুমেন্ট পরিচালনা করার সময় উজ্জ্বল হয়। এই সূক্ষ্মতাগুলি বোঝা আরও দক্ষ এবং পঠনযোগ্য কোড লিখতে সাহায্য করে, শেষ পর্যন্ত আরও ভাল জাভাস্ক্রিপ্ট প্রোগ্রামিং অনুশীলনের দিকে পরিচালিত করে।