将对象属性值传递给Typescript Angular中该对象内的另一个属性



我在TypeScript中有一个大对象,我正在尝试使它的某些方面自动化,以节省时间。

myObject = [
{
id: 0,
price: 100,
isBought: false,
click: () => this.buyItem(100, 0)
}
buyItem (itemCost: number, itemIndex: number) {
if (this.money >= itemCost) {
this.myObject[itemIndex].isBought = true;
}

我已经用这个函数自动增加了id属性:

findIndex() {
var objLength = Object.keys(this.myObject).length;
for(let i=0; i<objLength; i++) {
this.myObject[i].id = i;
}
}

但我不能在对象本身内部传递属性值。理论上这就是我想要的。

myObject = [
{
id: 0,
price: 100,
isBought: false,
click: () => this.buyItem(THIS.PRICE, THIS.ID)
}

这可能吗?如果没有,有什么解决办法吗?非常感谢。

这种方法怎么样?

function ItemModel (price) {
let self = this;
self.id = 0;
self.price = price;
self.isBought = false;
self.click = () => {
buyItem(self.price, self.id);  
};
}
var newInstanceOfItem = new ItemModel(100); // price is 100

最新更新