কল প্রয়োগ এবং বাঁধাই। এবং তারা কীভাবে আলাদা।
যেকোন দৈনিক পরিভাষা ব্যবহার করে কল শিখতে এবং প্রয়োগ করতে দেয়।
আপনার কাছে তিনটি গাড়ি রয়েছে your_scooter , your_car and your_jet
যা একই পদ্ধতি (পদ্ধতি) দিয়ে শুরু হয়। আমরা automobile
একটি পদ্ধতি দিয়ে একটি অবজেক্ট তৈরি করেছি push_button_engineStart
।
var your_scooter, your_car, your_jet;
var automobile = {
push_button_engineStart: function (runtime){
console.log(this.name + "'s" + ' engine_started, buckle up for the ride for ' + runtime + " minutes");
}
}
কখন কল হয় এবং কখন প্রয়োগ হয় তা বুঝতে দেয়। অনুমান করা যা আপনাকে একজন প্রকৌশলী এবং আপনি your_scooter
, your_car
এবং your_jet
যা push_button_engine_start সঙ্গে আসে না এবং আপনি একটি তৃতীয় পক্ষের ব্যবহার করতে চান, push_button_engineStart
।
আপনি নিম্নলিখিত কোডের লাইনগুলি চালনা করলে তারা একটি ত্রুটি দেয়। কেন?
//your_scooter.push_button_engineStart();
//your_car.push_button_engineStart();
//your_jet.push_button_engineStart();
automobile.push_button_engineStart.apply(your_scooter,[20]);
automobile.push_button_engineStart.call(your_jet,10);
automobile.push_button_engineStart.call(your_car,40);
সুতরাং উপরের উদাহরণটি সফলভাবে আপনার_স্কুটার, আপনার_কার, আপনার_জেটকে অটোমোবাইল অবজেক্ট থেকে একটি বৈশিষ্ট্য দেয়।
আসুন আরও গভীর ডুব দিন
এখানে আমরা কোডের উপরের লাইনটি বিভক্ত করব।
automobile.push_button_engineStart
পদ্ধতিটি ব্যবহার হতে আমাদের সহায়তা করছে।
আরও আমরা ডট স্বরলিপি ব্যবহার করে প্রয়োগ বা কল ব্যবহার করি।
automobile.push_button_engineStart.apply()
এখন আবেদন করুন এবং কল দুটি স্বীকৃতি গ্রহণ করুন।
- প্রসঙ্গ
- যুক্তি
সুতরাং এখানে আমরা কোডের চূড়ান্ত লাইনে প্রসঙ্গ সেট করি।
automobile.push_button_engineStart.apply(your_scooter,[20])
কল এবং প্রয়োগের মধ্যে পার্থক্য কেবলমাত্র এটি অ্যারের আকারে প্যারামিটারগুলি গ্রহণ করে যখন কলটি কেবল কমা দ্বারা পৃথক যুক্তিগুলির তালিকা গ্রহণ করতে পারে।
জেএস বাইন্ড ফাংশন কী?
একটি বাইন্ড ফাংশনটি মূলত যা কোনও কিছুর প্রসঙ্গ বেঁধে রাখে এবং তারপরে এটিকে পরবর্তী পর্যায়ে সম্পাদনের জন্য পরিবর্তনশীল হিসাবে সংরক্ষণ করে।
আমাদের আগের উদাহরণটি আরও ভাল করা যাক। এর আগে আমরা অটোমোবাইল অবজেক্ট সম্পর্কিত একটি পদ্ধতি ব্যবহার করেছি এবং এটি সজ্জিত করার জন্য ব্যবহার করেছি your_car, your_jet and your_scooter
। এখন কল্পনা করা যাক আমরা push_button_engineStart
কার্যকর করতে চাইলে মৃত্যুর পরে যে কোনও পর্যায়ে স্বতন্ত্রভাবে আমাদের মোটরগাড়িগুলি শুরু করতে আলাদা আলাদা আলাদা একটি দিতে চাই ।
var scooty_engineStart = automobile.push_button_engineStart.bind(your_scooter);
var car_engineStart = automobile.push_button_engineStart.bind(your_car);
var jet_engineStart = automobile.push_button_engineStart.bind(your_jet);
setTimeout(scooty_engineStart,5000,30);
setTimeout(car_engineStart,10000,40);
setTimeout(jet_engineStart,15000,5);
তবুও সন্তুষ্ট নন?
টিয়ারড্রপ হিসাবে এটি পরিষ্কার করা যাক। পরীক্ষার সময়। আমরা কল করতে ফিরে আসব এবং ফাংশন অ্যাপ্লিকেশন প্রয়োগ করব এবং একটি ফাংশনটির মান একটি রেফারেন্স হিসাবে সংরক্ষণ করার চেষ্টা করব।
কল এবং প্রয়োগের সাথে সাথে নীচের পরীক্ষাটি ব্যর্থ হয়েছে কারণ তাত্ক্ষণিকভাবে আহ্বান জানানো হয়েছে, অতএব, আমরা কখনই কোনও চলকটিতে একটি রেফারেন্স সঞ্চয় করার পর্যায়ে পৌঁছাতে পারি না যেখানে বাইন্ড ফাংশন শোটি চুরি করে is
var test_function = automobile.push_button_engineStart.apply(your_scooter);