How can I make a program wait for a variable change in javascript?

前端 未结 10 1794
耶瑟儿~
耶瑟儿~ 2020-12-01 03:23

I want to force a JavaScript program to wait in some particular points of its execution until a variable has changed. Is there a way to do it? I have already found an extens

10条回答
  •  执念已碎
    2020-12-01 03:48

    You can use properties:

    Object.defineProperty MDN documentation

    Example:

    function def(varName, onChange) {
        var _value;
    
        Object.defineProperty(this, varName, {
            get: function() {
                return _value;
            },
            set: function(value) {
                if (onChange)
                    onChange(_value, value);
                _value = value;
            }
        });
    
        return this[varName];
    }
    
    def('myVar', function (oldValue, newValue) {
        alert('Old value: ' + oldValue + '\nNew value: ' + newValue);
    });
    
    myVar = 1; // alert: Old value: undefined | New value: 1
    myVar = 2; // alert: Old value: 1 | New value: 2
    

提交回复
热议问题