জেভাস্ক্রিপ্ট ফাংশন কল
- পূর্ববর্তী পৃষ্ঠা জেএস ফাংশন পারামিটার
- পরবর্তী পৃষ্ঠা জেএস ফাংশন কল
জেভাস্ক্রিপ্ট ফাংশনের ভিতরের কোড 'কিছু' তা বিন্যস্ত করলে কার্যকর হবে
জেভাস্ক্রিপ্ট ফাংশন বিন্যস্ত করা
ফাংশন হয়পরিভাষাসময়, ফাংশনের ভিতরের কোড কার্যকর হবে না
ফাংশন হয়বিন্যস্তসময়, ফাংশনের ভিতরের কোড কার্যকর হয়
ফাংশন বিন্যস্ত করা সাধারণত 'ফাংশন স্টার্ট করা' বা 'ফাংশন কার্যকর করা' বলা হয়
এই ট্যুটোরিয়ালে, আমরা 'বিন্যস্ত”。
ফাংশনকে ফাংশন হিসাবে ব্যবহার করা
ইনস্ট্যান্স
function myFunction(a, b) { return a * b; } myFunction(10, 2); // 20 ফিরিয়ে দেবে
এইচটিএমএল ফাংশন কোনো অবজেক্টকে অনুসরণ করে না।কিন্তু জেভাস্ক্রিপ্টে, একটি ডিফল্ট গ্লোবাল অবজেক্ট সর্বদা বিদ্যমান থাকে。
এইচটিএমএল-এ, ডিফল্ট গ্লোবাল অবজেক্ট হল এইচটিএমএল পৃষ্ঠা স্বয়ং, উপরের সমস্ত ফাংশন 'অন্তর্ভুক্ত' এইচটিএমএল পৃষ্ঠায়।
ব্রাউজারে, এই পৃষ্ঠা অবজেক্ট হল ব্রাউজার উইন্ডো।উপরের ফাংশন স্বয়ংক্রিয়ভাবে একটি উইন্ডো ফাংশন হয়ে উঠে।
myFunction() 和 window.myFunction() 是同一个函数:
ইনস্ট্যান্স
function myFunction(a, b) { return a * b; } window.myFunction(10, 2); // 也会返回 20
这是调用函数的常见方法,但并不是一个好习惯。
গ্লোবাল পরিবর্তুন, পদ্ধতি বা ফাংশন গ্লোবাল অবজেক্টে নামসমস্ত সংঘাত এবং দুর্বলতা সৃষ্টি করতে পারে。
থিস শব্দ
যা হল থিস
যেমন বস্তুর উপর, এটা হল এই কোডকে "ওয়ানের" অবজেক্ট。
থিস
এর মানকে ফাংশনে ব্যবহার করার সময়, এটা হল যে ফাংশনকে "ওয়ানের" অবজেক্ট。
অবশ্যে থিস
যেমন বস্তুর উপর, এটা হল একটি শব্দ। আপনি এটা পরিবর্তন করতে পারেন না。 থিস
এর মান
গ্লোবাল অবজেক্ট
যখন অবজেক্টকে মালিক অবজেক্ট ছাড়াই ফাংশন করা হয়থিস
এর মান হল গ্লোবাল অবজেক্ট।
ওয়েব ব্রাউজারে, গ্লোবাল অবজেক্ট হল ব্রাউজার অবজেক্ট।
এই উদাহরণে, থিস
এর মান এই window অবজেক্টকে ফিরিয়ে দেবে:
ইনস্ট্যান্স
var x = myFunction(); // x হবে window অবজেক্ট function myFunction() { return this; }
একটি ফাংশনকে গ্লোবাল ফাংশন হিসাবে ফাংশন করার ফলে থিস
এর মান হল গ্লোবাল অবজেক্ট।
window অবজেক্টকে পদ্ধতি হিসাবে ব্যবহার করার ফলে প্রক্রিয়াটি ভেঙ্গে পড়তে পারে。
ফাংশনকে পদ্ধতি হিসাবে ব্যবহার করুন
JavaScript-এ, আপনি ফাংশনকে অবজেক্ট পদ্ধতি হিসাবে নির্ধারণ করতে পারেন。
নিচের উদাহরণ একটি অবজেক্ট (myObject) তৈরি করে, দুটি প্রকৃতি (firstName এবং lastName) এবং একটি পদ্ধতি (fullName) সহ একটি পদ্ধতি সহ তৈরি করে:
ইনস্ট্যান্স
var myObject = { firstName: "Bill", lastName: "Gates", fullName: function () { return this.firstName + " " + this.lastName; } } myObject.fullName(); // যেমন ফলাফল পাওয়া যাবে "Bill Gates"
fullName পদ্ধতি একটি ফাংশন। এই ফাংশন অবজেক্টের অংশ। myObject হল ফাংশনের মালিক。
যা হল থিস
যেমন বস্তুর উপর, এটা হল যে "ওয়ানের" JavaScript কোডের অবজেক্ট। এই উদাহরণে,থিস
এর মান হল myObject。
একবার পরীক্ষা করুন! fullName পদ্ধতিকে সংশোধন করে এই ফলাফল পাওয়া যাবে থিস
এর মান:
ইনস্ট্যান্স
var myObject = { firstName: "Bill", lastName: "Gates", fullName: function () { return this; } } myObject.fullName(); // যেমন ফলাফল পাওয়া যাবে [object Object] (মালিক অবজেক্ট)
ফাংশনটিকে অবজেক্ট পদ্ধতির মাধ্যমে কল করলে থিস
এর মান অবজেক্ট হয়েছে।
ফাংশন কনস্ট্রাক্টরের মাধ্যমে ফাংশন কল
যদি ফাংশন কলের আগে থাকে নতুন
কীওয়ার্ড, তাহলে এটি একটি কনস্ট্রাক্টর কল হবে。
এটা একটি নতুন ফাংশন তৈরি করার মতো লাগে, কিন্তু যেহেতু জেভাস্ক্রিপ্ট ফাংশন একটি অবজেক্ট, আপনি একটি নতুন অবজেক্ট তৈরি করছেন:
ইনস্ট্যান্স
// এটি ফাংশন কনস্ট্রাক্টর: function myFunction(arg1, arg2) { this.firstName = arg1; this.lastName = arg2; } // একটি নতুন অবজেক্ট তৈরি করা হলো: var x = new myFunction("Bill", "Gates"); x.firstName; // এটি "Bill" ফিরিয়ে দেবে
কনস্ট্রাক্টর কল নতুন অবজেক্ট তৈরি করবে।নতুন অবজেক্টটি তার কনস্ট্রাক্টর থেকে বৈশিষ্ট্য এবং পদ্ধতি উত্তরাধিকার করবে。
কনস্ট্রাক্টরের মধ্যে থিস
কীওয়ার্ডের মান নেই。
থিস
এর মান ফাংশন কলের সময় নতুন অবজেক্ট তৈরি করার জন্য ব্যবহৃত হবে。
- পূর্ববর্তী পৃষ্ঠা জেএস ফাংশন পারামিটার
- পরবর্তী পৃষ্ঠা জেএস ফাংশন কল