গেটার (Getter)
যখন একটি প্রোপার্টি অ্যাক্সেস করা হয়, মানটি একটি ফাংশন কলের মাধ্যমে অপ্রত্যক্ষভাবে পাওয়া যায়। জাভাস্ক্রিপ্টে get কীওয়ার্ড ব্যবহার করা হয়।
সেটার (Setter)
যখন একটি প্রোপার্টি সেট করা হয়, এটি অপ্রত্যক্ষভাবে একটি ফাংশন কল করে এবং মানটি আর্গুমেন্ট হিসেবে পাস হয়। রিটার্ন ভ্যালু প্রোপার্টি নিজে সেট হয়। জাভাস্ক্রিপ্টে set কীওয়ার্ড ব্যবহার করা হয়।
উদাহরণ: গেটার এবং সেটার ইমপ্লিমেন্টেশন
<html>
<body>
<script>
var department = {
deptName: "Marketing",
deptZone: "North",
deptID: 101,
get details() {
return "Department Details<br>" +
"Name: " + this.deptName + " <br>" +
"Zone: " + this.deptZone + "<br>" +
"ID: " + this.deptID;
},
set details(info) {
var words = info.toString().split(' ');
this.deptName = words[0] || '';
this.deptZone = words[1] || '';
this.deptID = words[2] || '';
}
};
department.details = 'Marketing North 001';
document.write(department.deptName); // Marketing
document.write(department.deptZone); // North
document.write(department.deptID); // 001
</script>
</body>
</html>
Object.defineProperty() ব্যবহার (ফ্লেক্সিবল)
var obj = { _value: 0 };
Object.defineProperty(obj, 'value', {
get: function() {
return this._value;
},
set: function(val) {
if (typeof val === 'number' && val >= 0) {
this._value = val;
} else {
throw new Error("Value must be a positive number");
}
},
enumerable: true,
configurable: true
});
obj.value = 10; // সেটার কল
console.log(obj.value); // 10 - গেটার কল
বাস্তব ব্যবহার ক্ষেত্র
- ভ্যালিডেশন (সেটারে)
- কম্পিউটেড প্রোপার্টি (গেটারে)
- লেজি লোডিং
- লগিং/ডিবাগিং
- অবজেক্ট প্রোক্সি