কোর্স সুপারিশ

বর্ণনা ও ব্যবহার

Object.defineProperty() পদ্ধতি এটা অবজেক্টের অ্যাট্রিবিউট যোগ কিংবা সংশোধন করতে ব্যবহৃত হয়。

Object.defineProperty() পদ্ধতি এটা অ্যাট্রিবিউটের মেটাডাটা পরিবর্তন করতে দেয়。

Object.defineProperty() পদ্ধতি এটা একটি getter এবং setter যোগ করতে দেয়。

সংশ্লিষ্ট পদ্ধতি

Object.defineProperty() অ্যাট্রিবিউট যোগ কিংবা সংশোধন করুন

Object.defineProperties() একাধিক অ্যাট্রিবিউট যোগ কিংবা সংশোধন করুন

Object.getOwnPropertyNames() অবজেক্টের সমস্ত অ্যাট্রিবিউটের নাম ফিরিয়ে দেয়।

Object.getOwnPropertyDescriptor() অ্যাট্রিবিউটের ডিসক্রিপ্টর ফিরিয়ে দেয়।

Object.getOwnPropertyDescriptors() কোন অবজেক্টের সমস্ত অ্যাট্রিবিউটের ডিসক্রিপ্টর ফিরিয়ে দেয়।

ইনস্ট্যান্স

উদাহরণ 1

অ্যাট্রিবিউট যোগ করুন:

// 创建一个对象
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "EN"
};
// একটি নতুন অ্যাট্রিবিউট যোগ করুন
Object.defineProperty(person, "year", {value:"2008"});

স্বয়ং প্রয়োগ করুন

উদাহরণ 2

অ্যাট্রিবিউট সংশোধন করুন:

// 创建一个对象
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "EN"
};
// 修改一个属性
Object.defineProperty(person, "language", {value:"NO"});

স্বয়ং প্রয়োগ করুন

উদাহরণ 3

// 创建一个对象
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "NO"
};
// 修改一个属性
Object.defineProperty(person, "language", {
  value: "EN"
  writable: true,
  enumerable: true,
  configurable: true
});
// 枚举属性
let txt = "";
for (let x in person) {
  txt += person[x] + "<br>";
}
// অ্যাট্রিবিউট দেখাও
document.getElementById("demo").innerHTML = txt;

স্বয়ং প্রয়োগ করুন

উদাহরণ 4

আগামী উদাহরণ পূর্ববর্তী উদাহরণের সমতুল, কিন্তু language অ্যাট্রিবিউটটি লুকিয়ে রেখেছে, যার ফলে এটা এক্সট্রাকবলভত হয়েছে:

// 创建一个对象
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "NO"
};
// 修改一个属性
Object.defineProperty(person, "language", {
  value: "EN"
  writable: true,
  enumerable: false,
  configurable: true
});
// 枚举属性
let txt = "";
for (let x in person) {
  txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;

স্বয়ং প্রয়োগ করুন

উদাহরণ 5

এই উদাহরণে setter এবং getter-কে তৈরি করা হয়েছে যাতে language এক্সপ্রোপ্রিয়টির অপডেট হয় মাথার বড় অক্ষরে:

// 创建一个对象
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "NO"
};
// 修改一个属性
Object.defineProperty(person, "language", {
  get: function() { return language },
  set: function(value) { language = value.toUpperCase() }
});
// 修改 language
person.language = "en";
// 显示 language
document.getElementById("demo").innerHTML = person.language;

স্বয়ং প্রয়োগ করুন

উদাহরণ 6

এই উদাহরণে গেটার দ্বারা firstName এবং lastName-কে মিলিয়ে ফেলা হয়:

// 创建一个对象
const person = {
  firstName: "Bill",
  lastName: "Gates"
};
// 定义一个 Getter
Object.defineProperty(person, "fullName", {
  get: function () { return this.firstName + " " + this.lastName; }
});

স্বয়ং প্রয়োগ করুন

উদাহরণ 7

জাভাস্ক্রিপ্টের Getter এবং Setter অত্যন্ত উপযুক্ত হয় কাউন্টার তৈরির জন্য:

// 定义 Setter 和 Getter
Object.defineProperty(obj, "reset", {
  get: function () { this.counter = 0; }
});
Object.defineProperty(obj, "increment", {
  get: function () { this.counter++; }
});
Object.defineProperty(obj, "decrement", {
  get: function () { this.counter--; }
});
Object.defineProperty(obj, "add", {
  set: function (value) { this.counter += value; }
});
Object.defineProperty(obj, "subtract", {
  set: function (value) { this.counter -= value; }
});

স্বয়ং প্রয়োগ করুন

বিন্যাস

Object.defineProperty(object, property, descriptor)

পারামিটার

পারামিটার বর্ণনা
object প্রয়োজনীয়। লক্ষ্য বস্তু
property প্রয়োজনীয়। বৈশিষ্ট্যের নাম
descriptor

প্রয়োজনীয়। যে অপরিবর্তনীয় বৈশিষ্ট্য যোগ করা হবে বা পরিবর্তন করা হবে, তা:

  • value: value
  • writable : true|false
  • enumerable : true|false
  • configurable : true|false
  • get : function
  • set : function

ফলাফল

ধরন বর্ণনা
Object পরিবর্তিত হওয়া বস্তু

ব্রাউজার সমর্থন

Object.defineProperty() এটা ECMAScript5 (ES5) এর বৈশিষ্ট্য

2013 সালের ৭ই জুলাই থেকে, সমস্ত আধুনিক ব্রাউজারগুলি সম্পূর্ণভাবে ES5 (JavaScript 2009) সমর্থন করে:

Chrome Edge Firefox Safari Opera
Chrome 23 IE/Edge 11 Firefox 21 Safari 6 Opera 15
2012 সালের ৯শে সেপ্টেম্বর 2012 সালের ৯শে সেপ্টেম্বর 2013 সালের ৪শে এপ্রিল 2012 সালের ৭ই জুলাই 2013 সালের ৭ই জুলাই