javascript - 在 javascript 中正确组织类
问题描述
我正在为 node.js 中的游戏编写服务器。
我对正确的结构有疑问。例如我有这个代码:
class mob {
constructor(name) {
this.name = name;
this.health = 100;
}
getHealth() {
return this.health;
}
}
class items{
constructor(name, id) {
this.name = name;
this.id= id;
this.value= value;
}
getValue() {
return this.value;
}
}
class world {
constructor(name) {
this.name = name;
this.weather = 'rain';
this.monsters = {};
}
addMonster(name) {
const monster = new mob(name);
this.monsters['1'] = monster;
}
setWeather(weather) {
this.weather = weather;
}
play() {
this.addMonster('dragon');
}
}
game = new world;
game.play();
我想在世界级中操纵天气,而不是在怪物级中使用例如这样的代码来复制它:
monster.setWeather('snow');
除此之外,我想在世界类中添加新的类,如项目、地图对象等,并使用世界类中的函数来操作它们。例如:
item.setWeather('rainbow');
并且还操纵其他类上的类,例如monster.getItemValue('item')
在javascript中这样做的正确方法是什么?
解决方案
我不知道我是否理解正确。
由于您已经有一个全局变量“game”,您可以直接使用“game.setWeather()”。
推荐阅读
- ios - (Objective-C) 通过window.rootView和keyWindow访问导航栈的区别
- python - 类型错误:on_message() 缺少 1 个必需的位置参数:“消息”
- yii2 - 在 Yii2 Bootstrap4 Nav 小部件中将类添加到子菜单容器
- dns - 自定义 DNS 映射到 azure 函数应用程序 url
- html - 当不透明度为 0 而没有 JavaScript 或 jQuery 时,如何在桌面菜单中获取复选框以聚焦并响应键盘?
- rdf - RDF 流中描述结束的标记
- linux - 如何将 awk 的结果通过管道传输到 netcat 中?
- maven - 在哪里可以找到 IntelliJ Maven 存储库错误的错误消息?
- c - 尝试第二次显示时 GtkAboutDialog 是否崩溃
- google-chrome - 如何更改 Chrome/Edge 调试器中的二进制消息显示格式?