#javascript
Мне нужно событие которое выполняется при изменении переменной
Ответы
Ответ 1
Для создания события при изменении значения переменной отлично подходит библиотека FLOSS.js (менее 1кб). Создать переменную: FLOSS({ name: 'userName', value: 'Petr Soskov', action: function(value){ alert(value) }, defer: true /* отменяю вызов action при создании переменной */ }); console.log(userName); /* Petr Soskov */ userName = 'Ivan Ivanov'; /* alert('Ivan Ivanov'); */ При изменении userName будет отрабатывать action. Ссылка на библиотеку.Ответ 2
Для отслеживания изменения можно использовать следующие варианты решения: Объект proxy. Он позволяет перехватывать обращение к другому объекту. Однако данный метод реализован лишь в спецификации ES-2015. Можно так же попытаться использовать Object.defineProperty. Как и с proxy - все это работа со свойствами объектов,. Необходимо быть осторожны, что бы не вызывать бесконечную рекурсию. Существует готовое решение: FLOSS.js И наконец, можно реализовать узконаправленный функционал, для решения поставленной задачи: var name = 'Boris'; let changeName = newName => { name = newName; console.log('New name: ' + name); } changeName('Petr');
Комментариев нет:
Отправить комментарий