Показаны сообщения с ярлыком getter. Показать все сообщения
Показаны сообщения с ярлыком getter. Показать все сообщения

понедельник, 22 августа 2011 г.

Нестандартное использование Get и Set в Javascript


Многие в курсе, что в Javascript есть так называемые Getter'ы и Setter'ы. Это конструкции для отслеживания изменения значений свойств объекта, а так же возвращения этих значений. «С изнанки» объекта они выглядят как обычные функции:



var obj = {

   get value() {

     return 0;

   },

   set value(s) {

     alert ("Go screw yourself!")

   }

}




* This source code was highlighted with Source Code Highlighter.




Но раз это функции, их можно использовать как душе угодно!



воскресенье, 8 мая 2011 г.

Кроссбраузерные аксессоры в JavaScript


В своём фреймворке AtomJS я активно использую аксессоры — геттеры и сеттеры:

Foo = atom.Class({
    get bar () {
        return this._bar;
    },
    set bar (bar) {
        this._bar = bar;
    }
});


Я уже описывал теорию, но в топике я расскажу о том, как заставить их работать во всех современных браузерах, а именно — как разрулить ситацию с тем, что Internet Explorer 9 ничего не знает о __defineSetter__ и подобных методах.