javascript - 在 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?
解决方案
尝试标志:
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
);
推荐阅读
- postgresql - PostgreSQL 套接字异常:对非阻塞套接字的操作会阻塞。这是什么?
- html - 如何显示两个内联?
- python - TensorFlow 训练 - 使用简单的一层估计器匹配结果
- scala - 如何使用正确版本的 Scala 正确设置 Scala Spark libraryDependencies?
- linux - 如何确定我的 Vulkan 安装是 32 位还是 64 位?(64 位 Ubuntu)
- nuget - 无法为源 https //api.nuget.org/v3/index.json 加载服务索引
- python - 如何从 Kudu 读取到 python
- python - 获取 URL 的 XML 以使用 Python 进行抓取
- python - 如何在完成工作后停止线程并在按下按钮时重新启动它?
- php - Codeigniter 从 URL localhost:82/project 中删除 index.php