gpt4 book ai didi

javascript - javascript中许多构造函数参数的替代方法

转载 作者:行者123 更新时间:2023-12-03 16:32:51 26 4
gpt4 key购买 nike

基本上,我试图弄清楚如何避免在 javascript 的构造函数中有很多参数。原因是我正在和 friend 一起制作一个基于太空的游戏来取乐,而飞船是基于模块的。目前他们可以拥有引擎和许多传感器、武器和殖民地模块。可能还会有更多。每艘船都是根据规范 build 的,因此要制造一艘船,您只需给它一个规范,其余的由船舶的 builder 处理。但是在制定规范时,我需要提供模块。我想避免的是这样做:

ShipSpec = function(civ, name, hull, engine, sensors, weapons, colony, ...) {}

而且我不确定最好的解决方案是什么。目前我有一个访问者模式解决方案,其中每个模块都有一个“注册”方法。这个方法有一个参数,然后会用那个参数注册自己(如果模块是武器,它调用注册武器的方法,如果它是传感器,它调用注册传感器的方法等)。那么我可以这样做:

ShipSpec = function(civ, name, hull, engine, modules) {}

但是,我觉得它可能有点复杂。或许。不幸的是,有时我有一种使事情复杂化的能力。创建规范然后在创建后将模块添加到其中会更好吗?或者这个解决方案好吗?这个问题还有其他解决方案吗?

我们计划让玩家可以创建规范并可能修改现有的规范,所以我想以一种好的方式让它变得容易。

保重,克尔

最佳答案

考虑使用规范对象作为构造函数参数:

var spec = {
civ: "...",
name: "...",
hull: "...",
...
};
ShipSpec = function(spec) {}

这样:

  • 构造函数参数已命名,因此更容易掌握。
  • 参数可以按任何顺序给出。
  • 你可以省略一些参数。

关于javascript - javascript中许多构造函数参数的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15677909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com