JavaScript Getter и Setter (с примери)

В този урок ще научите за методите на getter и setter на JavaScript с помощта на примери.

В JavaScript има два вида свойства на обекта:

  • Свойства на данните
  • Свойства на аксесоарите

Свойство за данни

Ето пример за свойство за данни, което използвахме в предишните уроци.

 const student = ( // data property firstName: 'Monica'; );

Собственост на аксесоар

В JavaScript свойствата за достъп са методи, които получават или задават стойността на обект. За това използваме тези две ключови думи:

  • get - да дефинирате метод за получаване, за да получите стойността на свойството
  • set - за дефиниране на метод за задаване на стойност на свойството

JavaScript Getter

В JavaScript се използват getter методи за достъп до свойствата на обект. Например,

 const student = ( // data property firstName: 'Monica', // accessor property(getter) get getName() ( return this.firstName; ) ); // accessing data property console.log(student.firstName); // Monica // accessing getter methods console.log(student.getName); // Monica // trying to access as a method console.log(student.getName()); // error

В горната програма getName()се създава метод за получаване за достъп до свойството на обект.

 get getName() ( return this.firstName; )

Забележка: За да създадете метод за получаване, getсе използва ключовата дума.

И също така при достъп до стойността, ние имаме достъп до стойността като свойство.

 student.getName;

Когато се опитате да получите достъп до стойността като метод, възниква грешка.

 console.log(student.getName()); // error

JavaScript Setter

В JavaScript се използват методи за задаване, за да се променят стойностите на обект. Например,

 const student = ( firstName: 'Monica', //accessor property(setter) set changeName(newName) ( this.firstName = newName; ) ); console.log(student.firstName); // Monica // change(set) object property using a setter student.changeName = 'Sarah'; console.log(student.firstName); // Sarah

В горния пример методът на задаване се използва за промяна на стойността на обект.

 set changeName(newName) ( this.firstName = newName; )

Забележка: За да създадете метод за задаване, setсе използва ключовата дума.

Както е показано в горната програма, стойността на firstNameе Monica.

След това стойността се променя на Sarah.

 student.chageName = 'Sarah';

Забележка : Setter трябва да има точно един формален параметър.

JavaScript Object.defineProperty ()

В JavaScript можете също да използвате Object.defineProperty()метод за добавяне на гетери и сетери. Например,

 const student = ( firstName: 'Monica' ) // getting property Object.defineProperty(student, "getName", ( get : function () ( return this.firstName; ) )); // setting property Object.defineProperty(student, "changeName", ( set : function (value) ( this.firstName = value; ) )); console.log(student.firstName); // Monica // changing the property value student.changeName = 'Sarah'; console.log(student.firstName); // Sarah

В горния пример Object.defineProperty()се използва за достъп и промяна на свойството на обект.

Синтаксисът за използване Object.defineProperty()е:

 Object.defineProperty(obj, prop, descriptor)

В Object.defineProperty()метод отнема три аргумента.

  • Първият аргумент е objectName.
  • Вторият аргумент е името на имота.
  • Третият аргумент е обект, който описва свойството.

Интересни статии...