【发布时间】:2015-03-30 22:52:53
【问题描述】:
我目前正在使用 Javascript 重写一些科学的 C++ 代码,如果可能的话,我希望保持相同的基本组织。在 C++ 代码中,有许多类包含来自许多不同数组的一堆 const 数据和一系列处理该数据的 public static 方法。我正在努力解决如何在 Javascript 中复制这样的内容。
目前我正在使用以下内容:
function mars(){}
mars.x = [{A:1, B:2, C:3},{A:1, B:2, C:3}]; //...
mars.y = [{A:1, B:4, C:2},{A:1, B:2, C:3}]; //...
// ...about 600 lines in total
mars.doSomething = function(foo){
var result = 0;
// Do lots of processing of above arrays
return result;
}
mars.doSomethingElse = function(bar){
var result = 0;
// Do lots of processing of above arrays
return result;
}
console.log(mars.doSomething(3))
这可行,但它会将mars.x 等暴露给真正不需要知道它的其余代码。如果我使用prototype,方法将不再是静态的,代码中会充斥着new 调用,这是我并不真正想要的。
然后我要问的是:如何在 JavaScript 中隐藏变量,同时将静态方法暴露给其余代码?还是我在担心不该担心的事情?
【问题讨论】:
-
剩下的代码是指类的方法吗?
-
你在担心不该担心的事情!
-
@Sprotenwels 不,我的意思是其他 50 个左右的类价值函数(总共数百个函数)。感觉好像我在全球乱扔了很多其他大多数班级都不需要知道的东西。
-
那么@Azeirah 的答案就是你应该追求的目标
-
这是 Node.js 还是客户端?