很低级的问题
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% ? 你这是当数学直接用了