在js中创建3状态对象的最佳方法

时间:2019-07-11 08:42:51

标签: javascript

如何在javascript中创建3状态对象? 假设我们要制作“蛇”游戏。那里有一个网格,蛇可以在上面移动。每个字段都是一个对象。该对象应该以某种方式具有以下属性:“是蛇在上面的田野”,“是蛇在上面的田野”还是“两者都不是”。 应该使用字符串属性({state: "fruit"/"snake"/"grass"})还是两个布尔属性({isSnake: true/false, isFruit: true/false})来完成。

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

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

field.isSnake = true;

通常,什么时候应该使用getter和setter?

3 个答案:

答案 0 :(得分:1)

尝试标记:

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
);

答案 1 :(得分:0)

具有两个布尔值isSnakeisFruit是危险的,因为它可以表示四个状态,但是只有三个有效。蛇不能是水果,但是您的代码允许它成为水果。您是否使用字符串,数字或符号来表示三种状态是个人喜好。

答案 2 :(得分:-2)

您的答案都取决于您遵循的编程范例,深入学习编程范例,您有望获得答案, 作为一个初学者,我想您正在使用“面向对象编程”范例,那么您必须使用Getter和setter,是的,像“ isSanke”这样的标志比使用Strings更清洁。

相关问题