8c1dea14

Определение Getter'ов и Setter'ов


Getter это метод, получающий значение отдельного свойства. Setter это метод, устанавливающий значение отдельного свойства. Вы можете определить getter и setter в любом предопределённом объекте ядра или в пользовательском объекте, поддерживающем добавление новых свойств. Синтаксис определения getter и setter использует синтаксис литерала объекта.


Следующая сессия JS-оболочки иллюстрирует, как getter и setter могут работать для определённого пользователем объекта o. JS-оболочка является приложением, позволяющим разработчикам тестировать код JavaScript в пакетном режиме или интерактивно.

Свойствами объекта о являются:

  • o.a - число
  • o.b - getter, возвращающий o.a плюс 1
  • o.c - setter, устанавливающий значение o.a в половину его величины
  • js> o = new Object;

    [object Object]

    js> o = {a:7, get b() {return this.a+1; }, set c(x) {this.a = x/2}};

    [object Object]

    js> o.a

    7

    js> o.b

    8

    js> o.c = 50

    js> o.a

    25

    js>


    Эта сессия JavaScript иллюстрирует то, как getter и setter могут расширять прототип Date, добавляя свойство year ко всем экземплярам предопределённого класса Date. Она использует существующие методы getFullYear и setFullYear класса Date для поддержки getter и setter свойства year.




    Эти операторы определяют getter и setter для свойства year:

    js> var d = Date.prototype;

    js> d.year getter= function() { return this.getFullYear(); };

    js> d.year setter= function(y) { return this.setFullYear(y); };


    Следующие операторы используют getter и setter в Date-объекте:

    js> var now = new Date;

    js> print(now.year);

    2000

    js> now.year=2001;

    987617605170

    js> print(now);

    Wed Apr 18 11:13:25 GMT-0700 (Pacific Daylight Time) 2001





    Содержание раздела