首页 > 解决方案 > 在 js 中创建 3 状态对象的最佳方法

问题描述

你如何在 javascript 中创建一个 3 状态对象?假设我们想要制作游戏“Snake”。那里有一个网格,蛇可以继续前进。每个字段都是一个对象。该对象应该以某种方式具有属性“它是蛇所在的领域”,“它是水果所在的领域”和“两者都不是”。应该使用 string-property({state: "fruit"/"snake"/"grass"})还是两个 boolean-properties来完成({isSnake: true/false, isFruit: true/false})

我应该使用哪个选项或有更好的选择?

还有一个后续问题:我应该在这里使用 getter 和 setter 还是足够了?

field.isSnake = true;

一般来说,什么时候应该使用 getter 和 setter?

标签: javascript

解决方案


尝试标志:

const TypeFlags = {
  FRUIT: 1,
  SNAKE: 2,
  GRASS: 4,
};

const field = {
  flag: 1,
};

console.log(
  (field.flag & TypeFlags.FRUIT) !== 0, // fruit
  (field.flag & TypeFlags.SNAKE) !== 0, // snake
  (field.flag & TypeFlags.GRASS) !== 0 // grass
);

推荐阅读