٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش دسترسی به اشیا جاوا اسکریپت

جاوا اسکریپت دسترسی به اشیا // Create an object: const person = { firstName: "John", lastName: "Doe", language: "en", get lang() { return this.language; } }; // Display data from the object using a getter: document.getElementById("demo").innerHTML = person.lang; جاوا اسکریپت…

محمد یوسفی

26 جولای 2021

جاوا اسکریپت دسترسی به اشیا

// Create an object:
const person = {
  firstName: "John",
  lastName: "Doe",
  language: "en",
  get lang() {
    return this.language;
  }
};

// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.lang;

جاوا اسکریپت تنظیم کننده (مجموعه کلید واژه)

در این مثال از یک langویژگی برای set ارزش languageملک استفاده شده است.

مثال

const person = {
  firstName: "John",
  lastName: "Doe",
  language: "",
  set lang(lang) {
    this.language = lang;
  }
};

// Set an object property using a setter:
person.lang = "en";

// Display data from the object:
document.getElementById("demo").innerHTML = person.language;

عملکرد جاوا اسکریپت یا گیرنده؟

تفاوت این دو مثال چیست؟

مثال 1

const person = {
  firstName: "John",
  lastName: "Doe",
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
};

// Display data from the object using a method:
document.getElementById("demo").innerHTML = person.fullName();

مثال2

const person = {
  firstName: "John",
  lastName: "Doe",
  get fullName() {
    return this.firstName + " " + this.lastName;
  }
};

// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.fullName;

مثال 1 به fullName به عنوان یک تابع دسترسی پیدا کنید: person.fullName ().

مثال 2 به fullName به عنوان یک ویژگی دسترسی پیدا کنید: person.fullName.

مثال دوم نحو ساده تری را ارائه می دهد.


کیفیت داده

JavaScript می تواند کیفیت داده بهتری را هنگام استفاده از گیرنده ها و تنظیم کننده ها تضمین کند.

با استفاده از langخاصیت ، در این مثال ، مقدار languageخاصیت را به صورت بزرگ برمی گرداند :

مثال

// Create an object:
const person = {
  firstName: "John",
  lastName: "Doe",
  language: "en",
  get lang() {
    return this.language.toUpperCase();
  }
};

// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.lang;

با استفاده از langخاصیت ، در این مثال یک مقدار بزرگ در languageویژگی ذخیره می شود:

مثال

const person = {
  firstName: "John",
  lastName: "Doe",
  language: "",
  set lang(lang) {
    this.language = lang.toUpperCase();
  }
};

// Set an object property using a setter:
person.lang = "en";

// Display data from the object:
document.getElementById("demo").innerHTML = person.language;

چرا از گیرنده ها و تنظیم کننده ها استفاده می کنیم؟

  • نحو ساده تری می دهد
  • این امر برای ویژگی ها و روش ها به نحوی برابر امکان پذیر است
  • این می تواند کیفیت داده بهتر را تضمین کند
  • برای انجام کارهای پشت صحنه مفید است

Object.defineProperty ()

از این Object.defineProperty()روش می توان برای افزودن Getter و Setter نیز استفاده کرد:

یک نمونه شمارنده

// Define object
const obj = {counter : 0};

// Define setters
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;}
});

// Play with the counter:
obj.reset;
obj.add = 5;
obj.subtract = 1;
obj.increment;
obj.decrement;

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها