get()set()求个解惑

很低级的问题
get set 可以对一个属性进行操作,
能对 this.test.bar这样对象下面的属性进行操作吗?
如果可以,麻烦知道的大佬给个书写方法
bar: {
get() {
return this._bar;
},
set(value) {
this._bar = value;
}
},
如果是对this.test.bar该怎么写?

对于this.test的属性就算可以也显得臃肿 不过应该是不可以

用Object.defineProperty

总算学会了一种方法,也不知道是不是正解
properties: {
player: null,
},

onLoad() {
    this.player = {

        get x() {
            return this._x
        },
        set x(value) {
            this._x = value;
        },

        get y() {
            return this._y
        },
        set y(value) {
            this._y = value;
        },

        get r() {
            return this.x * this.y
        },

    };
    this.player.x = 2;
    this.player.y = 2;
    console.log('x:', this.player.x)
    console.log('y:', this.player.y)
    console.log('r:', this.player.r)
},

这样写是多余的

this.player.skill1.addValue 比如我要在角色下面新增些技能再set一些技能修正值什么的,
虽然可能也有很多思路可以代替,但是这也是种解法吧,我想总有些用的上的地方

比如角色的1技能有个装备可以提高 10%的加成
this.player.skill1.addValue+=10% 就搞定了 不也挺方便的么

说白了也就是索引器 可以 控制类里面字段 属性 的访问权限
get 读
set 写

private _test: number = 0;
get Test() {
    if ("????什么条件") {

    } else {
        "又怎么处理"
    }
    return this._test;
}

set Test(value: number) {
    if (this._test === value) return
    else {
        "又怎么处理"
    }
    this._test = value
}

10% ? 你这是当数学直接用了