gpt4 book ai didi

javascript - 将我的整个系统创建为一个类或一个具有外部支持功能的对象

转载 作者:行者123 更新时间:2023-12-03 09:10:41 25 4
gpt4 key购买 nike

我实在想不出这个问题的明确标题;如果您愿意,请随意改写。我想为三体问题(物理学)制作一个模拟器:三个物体被赋予初始位置、速度、质量(常数)等,并且所述位置根据每个物体对每个物体施加的重力而变化。其他机构。我面临两个选择:

a) 创建一个对象来保存物体的所有数据(位置、速度、加速度矢量等),然后让它们通过对象外部的函数相互交互:

var system = {};

function init(array) {
// loads data into window.system from input array
blah blah blah
}

function doThis() {
// does This
}

function doThat(params) {
// does That
}

function wait(t) {
// wait for time t, adjusting vectors accordingly, then recalculate
doThat();
doThis(foo);
blah blah blah
}

// more code that executes wait() over and over again
blah blah blah

b) 创建一个类,作为对象的模板,该对象包含所有数据,但内部包含所有功能(以及与系统相关的所有其他内容):

function System(array) {
// init
// loads data from array into vectors etc
blah blah blah

function.doThis() { // private function
blah blah blah
}

this.doThat = new function(params) { // public function
blah blah blah
}

this.wait(t) {
doThis();
blah blah blah
}

this.output() { // outputs data into an array to be parsed by whatever (e.g. a visual renderer)
blah blah blah
return data;
}
}

// how to use
var systemA = new System(someData);
systemA.doThat(foo);

setInterval(1000, function() {
systemA.wait(1);
var data = systemA.output();
renderGraphics(data);
});

// create more systems if I want
var systemB = new System(whatever);
// etc

哪种方法是更明智的方法(从长远来看更简单、复杂性更少、可扩展性等)?

最佳答案

这些方法似乎非常等效 - 都有一个构造函数(或 init 函数)和一堆与 system 对象交互的方法。

仅在第一个片段中,所有函数都散布在文件中,而在第二个片段中,可以轻松地将它们识别为属于该类。

关于javascript - 将我的整个系统创建为一个类或一个具有外部支持功能的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32078496/

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