js,监听变量的变化时,怎么去修改返回值,下有详细

图片说明
现在有一个对象,我希望监听对象里面的某个属性,然后当这个属性增加到一定大小时比如4的时候,把这个属性改回-1,但是不知道为什么return没有生效,并且,在控制台中我看到的属性是这样的
图片说明
不知道为什么前面会加上set这样的字符串

希望大家不吝赐教!

当一个属性被设置了set与get方法时,这个属性就不能用来存放数据了,要用对象中另外的属性来存放数据
<script type="text/javascript">
var obj = {
    _abc: -1//这里不能是abc
};
Object.defineProperty(obj,"abc",{
    set: function (v) {
        console.log(v);
        this._abc = -100;
    },
    get: function () {
        return this._abc;
    }
});
obj.abc = 5;
console.log(obj.abc);
</script>

起码要有一个条件判断吧,这个函数看不到条件判断,怎么会到时候返回-1呢?

我很少写前端,随便写个,比较粗浅

function counter() {
    var c = 0;
    this.addAndGet = function() {
        int v = ++c;
        if (c >=100) {
                c = 0;
        }
        return c;
    }
    this.get = function() {
        return c;
    }
} 

counter = new counter();
counter.addAndGet();

这个办法好!可以实现试试