কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে গেটার এবং সেটার ফাংশন কীভাবে ডিফাইন করবেন?


গেটার (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 - গেটার কল

বাস্তব ব্যবহার ক্ষেত্র

  • ভ্যালিডেশন (সেটারে)
  • কম্পিউটেড প্রোপার্টি (গেটারে)
  • লেজি লোডিং
  • লগিং/ডিবাগিং
  • অবজেক্ট প্রোক্সি
  1. জাভাস্ক্রিপ্টে ছবির উজ্জ্বলতা এবং کنترাস্ট সেট করা

  2. জাভাস্ক্রিপ্টে listStyleImage, listStylePosition, এবং listStyleType একসাথে একটি ঘোষণায় সেট করা

  3. জাভাস্ক্রিপ্টে encodeURI() এবং decodeURI() ফাংশন

  4. জাভাস্ক্রিপ্টে অ্যারে থেকে সেটে কনভার্ট করা