Задать вопрос
@NazarJs

Как отследить изменение значения в переменной?

Как отследить изменение значения в переменной?
Мне нужно вызвать функцию если значение в переменной измениться.
  • Вопрос задан
  • 5732 просмотра
Подписаться 2 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 3
sergiks
@sergiks Куратор тега JavaScript
♬♬
Если есть возможность изменить код создания этой переменной..
Например, вместо
var a = 'QnA.habr.com';
написать
Object.defineProperty(this, 'a', {
    set: function(v) {console.log('Изменяют!'); this.value = v;},
    value: 'QnA.habr.com'
});
то теперь любое изменение значения переменной вызовет панику в консоли:
a = 'StackOver...';
// Изменяют!


Upd. выяснилось, вопрос был совсем про другое )
Ответ написан
@FlatUser
Юзайте эту библиотеку.

https://www.npmjs.com/package/track-changes-js

Пример
// tracked variable
let num = 1;

// add an observer, pass the name and function that returns the variable
trackChanges.addObserver('numObserv', () => num);

// add a handler, pass the name and function that will be called when changing "num"
trackChanges.addHandler('numObserv', numHandler);

/** 
create a function that will be called when the variable changes, the function argument will be its changed value 
**/
function numHandler(modifiedResult) {
  console.log(`Num changed to: ${ modifiedResult }`);
}
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Вот из js

https://developer.mozilla.org/ru/docs/Web/JavaScri...

Вот пример из TS.
class foo {
    private _bar: boolean = false;
    get bar(): boolean {
        return this._bar;
    }
    set bar(value: boolean) {
        this._bar = value;
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы