Стартап-студия «Начало»
  • Блог
  • Портфолио
  • Авторизация
    • Войти через сторонний сервис
    • ВКонтакте
    • Github
  • Регистрация

Обработчики событий получения и изменения переменной

Список рубрик
PHP статьи, которые поднимут скилл Javascript статьи, которые будут полезны Статьи о мобильной разработке на Java HTML & CSS статьи о вёрстке SEO & SMM оптимизация, продвижение и маркетинг Системы управления содержимым сайта Веб-сервисы, обзор и разработка Социальные сети и всё, что с ними связано Статьи о фреймворках Последние новости из мира информационных технологий Раздел обучения программированию Стартапы, гениальные и успешные проекты Бизнес-идеи или как заработать Статьи о веб-дизайне, которые приведут к успеху Администрирование сервера и установка программ Юмор айтишников Разное Битрикс
Чат для пользователей

Nogard7491 30.04.2017 07:34

да, причём быстро

MadisoN 30.04.2017 06:38

сайт набирает популярность :)

Nogard7491 16.04.2017 10:59

Новое достижение! ТИЦ сайта стал равен десяти.

nail361 09.06.2016 14:02

ok

Nogard7491 01.06.2016 09:46

Всем привет! Если возникнут какие-либо вопросы по статьям или по сайту в целом, регистрируйтесь и задавайте их в этом чате!

Живая статистика
Посетителей онлайн:
Посетителей за сутки:
Посетителей за месяц:
Просмотров за час:
Просмотров за сутки:
  • Главная
  • Блог
  • Javascript статьи, которые будут полезны
  • Обработчики событий получения и изменения переменной
Поделиться записью в соц. сетях
Рейтинг записи
язык программирования javascript

Вешаем обработчик события получения и изменения переменной

Переменная будет добавляться в контексте глобального объекта javascript, как его свойство. Для создания свойства объекта воспользуемся специальным методом.

Внимание!

Не рекомендуется работать напрямую с глобальным объектом window.
В коде из статьи этот объект используется только для примера.

Общий вид метода

/**
 * @param [Object] obj объект, в котором создаётся свойство
 * @param [Object] props объекты, чьи собственные свойства 
 * являются дескрипторами
 */
Object.defineProperties(obj, props)

Реализация обработчиков событий

/**
 * Обработчик события получения переменной.
 * 
 * @param value значение переменной
 */
function gettingHandler(value) {
    console.log("Значение переменной = " + value);
}

/**
 * Обработчик события изменения переменной.
 * 
 * @param oldValue старое значение переменной
 * @param newValue новое значение переменной
 */
function settingHandler(oldValue, newValue) {
    console.log("Старое значение переменной = " + oldValue);
    console.log("Новое значение переменной = " + newValue);
}

/**
 * Определяет два свойства глобального объекта. На первое свойство будут повешены обработчики событий, 
 * а второе будет использоваться как хранилище значения первого.
 */
Object.defineProperties(window, {
    "myVarriable": {
        get: function () {
            gettingHandler(myVarriableValue); // вызывает обработчик события
            return myVarriableValue; // возвращает значение
        },
        set: function (value) {
            settingHandler(myVarriableValue, value); // вызывает обработчик события
            myVarriableValue = value; // присваивает значение
        },
    },
    "myVarriableValue": {
        value: 0, // значение по умолчанию
        configurable: true, // признак того, что свойство можно изменить
        writable: true // признак того, что значение можно изменить с помощью оператора присваивания
    }
});

Внимание!

Нужно очень осторожно подходить к подобной реализации, т.к. сильно ухудшается "прозрачность" кода.

Вызов событий получения и изменения переменной

var test = myVarriable; // выведет сообщение "Значение переменной = 0"
myVarriable = 3; // выведет сообщения "Старое значение переменной = 0" и "Новое значение переменной = 3"
Автор: Nogard7491
Опубликовано: 8 августа 2016
  • Главная
  • Блог
  • Javascript статьи, которые будут полезны
  • Обработчики событий получения и изменения переменной
  • Назад
  • Вперёд
Комментарии к статье

Комментариев пока нет.

Портал-студия разработки сайтов и мобильных приложений Стартап-студия «Начало» © 2022

Счётчики
Управление аккаунтом Авторизация
Регистрация
Фрилансеры занят Nogard7491
занят nail361
свободен MadisoN
свободен mega
Основные разделы сайта Главная страница
Статьи про веб-разработку
Наши работы
Карта сайта
Полезные ресурсы Хабрахабр
Контент-агентство TexTerra
Анализ сайта PR-CY
PHP-фреймворк Laravel
API Bitrix
Сайт фриланса