জেভাস্ক্রিপ্ট অবজেক্ট কনস্ট্রাক্টর
- পূর্ববর্তী পৃষ্ঠা জেএস অবজেক্ট এক্সেসর
- পরবর্তী পৃষ্ঠা জেএস অবজেক্ট প্রটোটাইপ
প্রদর্শন
function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; }
কন্সট্রাকটর ফাংশনকে বড় অক্ষরে নামকরণ করা একটি ভালো অভ্যাস
অবজেক্ট টাইপ (ব্লুটেপ) (ক্লাস)
পূর্ববর্তী চাপটি সীমিত রয়েছে। তারা শুধুমাত্র একটি অবজেক্ট তৈরি করতে পারে
কখনও কখনও আমরা একই “টাইপ” এর অনেক অবজেক্ট তৈরির “ব্লুটেপ”
একটি “অবজেক্ট টাইপ” তৈরির একটি পদ্ধতি হলঅবজেক্ট কন্সট্রাকটর ফাংশন。
উপরোক্ত উদাহরণেফাংশন Person() হল অবজেক্ট কন্সট্রাকটর ফাংশন
দ্বারা new কোডওয়ার্ড ফাংশন বাস্তবায়ন করে,
var myFather = new Person("Bill", "Gates", 62, "blue"); var myMother = new Person("Steve", "Jobs", 56, "green");
this কোডওয়ার্ড
জেস্ক্রিপ্টে this
সমস্ত চিহ্নিত করা কিছু হল কোডের “মালিক”
this
এর মূল্য, অবজেক্টে ব্যবহার করা হলে, তা হল অবজেক্টটি এবংতা হল
কন্সট্রাকটর ফাংশনেthis
কোনও মূল্য নেই। তা একটি নতুন অবজেক্টের প্রতিস্থাপক। যখন একটি নতুন অবজেক্ট তৈরি হয়, then this এর মূল্য এই নতুন অবজেক্টটিতে হবে。
মতলব করুন this
এটা একটি বদলী নয়, এটা একটি কীভূত। this-এর মান আপনারা পরিবর্তন করতে পারবেন না
ওবজেক্টে এট্রিবিউট যোগ করা
একটি ওবজেক্টে একটি নতুন এট্রিবিউট যোগ করা খুব সহজ
প্রদর্শন
myFather.nationality = "English";
নতুন এট্রিবিউট myFather-এ যোগ করা হয়, না myMother-এও কোনও অন্য person ওবজেক্ট
ওবজেক্টে পদ্ধতি যোগ করা
একটি ওবজেক্টে একটি নতুন পদ্ধতি যোগ করা খুব সহজ
প্রদর্শন
myFather.name = function () { return this.firstName + " " + this.lastName; };
নতুন পদ্ধতি myFather-এ যোগ করা হয়, না myMother-এও কোনও অন্য person ওবজেক্ট
কনস্ট্রাক্টরে এট্রিবিউট যোগ করা
ওবজেক্টের মধ্যে একটি নতুন এট্রিবিউট যোগ করার থেকে ভিন্ন, ওবজেক্ট কনস্ট্রাক্টরে একটি নতুন এট্রিবিউট যোগ করা সম্ভব নয়
প্রদর্শন
Person.nationality = "English";
যদি কনস্ট্রাক্টরে একটি নতুন এট্রিবিউট যোগ করতে হয়, তবে কনস্ট্রাক্টর ফাংশনে যোগ করতে হবে:
প্রদর্শন
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
এভাবে ওবজেক্ট এট্রিবিউটকে ডিফল্ট মান দেওয়া যায়
কনস্ট্রাক্টরে পদ্ধতি যোগ করা
আপনার কনস্ট্রাক্টর ফাংশনও একটি নতুন পদ্ধতি সংজ্ঞায়িত করতে পারে:
প্রদর্শন
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.name = function() {return this.firstName + " " + this.lastName;}; }
ওবজেক্টের মধ্যে একটি নতুন পদ্ধতি যোগ করার থেকে ভিন্ন, ওবজেক্ট কনস্ট্রাক্টরে একটি নতুন পদ্ধতি যোগ করা সম্ভব নয়
সংরক্ষণকারী ফাংশনের মধ্যে একটি ওবজেক্টে একটি নতুন পদ্ধতি যোগ করা প্রয়োজন
প্রদর্শন
function Person(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.eyeColor = eyeColor; this.changeName = function (name) { this.lastName = name; }; }
changeName() ফাংশন পার্সন এর lastName এট্রিবিউটকে name এর মান সেট করে।
এখন আপনি প্রয়াস করতে পারেন:
myMother.changeName("Jobs");
দ্বারা myMother
প্রতিস্থাপন thisএবং JavaScript-এর বর্তমানে কোনও person-কে কোনও কাজ করছে তা জানতে পারে。
স্থাপিত JavaScript কন্সট্রাক্টর
JavaScript-এর প্রকৃত ওবজেক্টের কন্সট্রাক্টর প্রদান করে:
প্রদর্শন
var x1 = new Object(); // একটি নতুন Object ওবজেক্ট var x2 = new String(); // একটি নতুন String ওবজেক্ট var x3 = new Number(); // একটি নতুন Number ওবজেক্ট var x4 = new Boolean(); // একটি নতুন Boolean ওবজেক্ট var x5 = new Array(); // একটি নতুন Array ওবজেক্ট var x6 = new RegExp(); // একটি নতুন RegExp ওবজেক্ট var x7 = new Function(); // একটি নতুন Function ওবজেক্ট var x8 = new Date(); // একটি নতুন Date ওবজেক্ট
Math()
ওবজেক্টটি এই তালিকায় নেই। Math একটি গ্লোবাল ওবজেক্ট!new
এই কীওয়ার্ডটি Math-এ ব্যবহার করা যায় না。
আপনি জানেন?
উপরোক্ত দেখে এসেছে, JavaScript প্রকৃত ডাটা টাইপস চিন্তাকোষ, সংখ্যা এবং বলীয় এর ওবজেক্ট সংস্করণ প্রদান করে। কিন্তু জটিল ওবজেক্ট তৈরি করার কোনও কারণ নেই। প্রকৃত মান অনেক দ্রুত!
ওবজেক্ট লিটারাল ব্যবহার করুন {}
প্রতিস্থাপন new Object()
。
স্ট্রিং লিটারাল ব্যবহার করুন ""
প্রতিস্থাপন new String()
。
সংখ্যা লিটারালের পরিবর্তে ব্যবহার করুন Number()
。
বলীয় লিটারালের পরিবর্তে ব্যবহার করুন new Boolean()
。
আর্রেই লিটারাল ব্যবহার করুন []
প্রতিস্থাপন new Array()
。
প্যাটার্ন লিটারালের পরিবর্তে ব্যবহার করুন new RexExp()
。
ফাংশন এক্সপ্রেশন ব্যবহার করুন () {}
প্রতিস্থাপন new Function()
。
প্রদর্শন
var x1 = {}; // নতুন ওবজেক্ট var x2 = ""; // নতুন প্রকৃত স্ট্রিং var x3 = 0; // নতুন প্রকৃত সংখ্যা var x4 = false; // নতুন প্রকৃত লজিক মান var x5 = []; // নতুন অ্যারে অবজেক্ট var x6 = /()/ // নতুন রেগুলার এক্সপ্রেশন অবজেক্ট var x7 = function(){}; // নতুন ফাংশন অবজেক্ট
স্ট্রিং অবজেক্ট
সাধারণত, স্ট্রিং মানকের জন্য অরিজিনাল মান তৈরি করা হয়: var firstName = "Bill"
কিন্তু এটা ব্যবহার করা যেতে পারে new
কীবোর্ড ওয়ার্ড স্ট্রিং অবজেক্ট তৈরি করার জন্য: var firstName = new String("Bill")
অনুরোধ করুন জেএস স্ট্রিংএই চপটিতে শিখুন কেন স্ট্রিং মানকের জন্য অবজেক্ট তৈরি করা উচিত নয়。
নিউমেরিক অবজেক্ট
সাধারণত, নিউমেরিক মানকের জন্য অরিজিনাল মান তৈরি করা হয়: var x = 456
কিন্তু এটা ব্যবহার করা যেতে পারে new
কীবোর্ড ওয়ার্ড নিউমেরিক অবজেক্ট তৈরি করার জন্য: var x = new Number(456)
অনুরোধ করুন জেএস নিউমেরিকএই চপটিতে শিখুন কেন নিউমেরিক মানকের জন্য অবজেক্ট তৈরি করা উচিত নয়。
বলুয়ান অবজেক্ট
সাধারণত, লজিক্যাল মানকের জন্য অরিজিনাল মান তৈরি করা হয়: var x = false
কিন্তু এটা ব্যবহার করা যেতে পারে new
কীবোর্ড ওয়ার্ড লজিক্যাল অবজেক্ট তৈরি করার জন্য: var x = new Boolean(false)
অনুরোধ করুন জেএস লজিকএই চপটিতে শিখুন কেন এক্সপ্রেসশন বলা হয় না যে লজিক্যাল মানকের জন্য অবজেক্ট তৈরি করা উচিত নয়。
- পূর্ববর্তী পৃষ্ঠা জেএস অবজেক্ট এক্সেসর
- পরবর্তী পৃষ্ঠা জেএস অবজেক্ট প্রটোটাইপ