如何让IDE识别JavaScript;“类”;在其他文件中引用

如何让IDE识别JavaScript;“类”;在其他文件中引用,javascript,ide,code-completion,Javascript,Ide,Code Completion,我开始使用JS进行开发,因为我想学习WebGL。多年来,我一直使用强类型的类,如java、C++和C语言。但是现在我遇到了JS的严重问题,因为它没有类,变量也没有类型 所以我尝试使用IDE来帮助我完成一些代码等等。但我无法创建一个“类”并使它在几个IDE上被识别。Tryied NetBeans、Cloud9和Eclipse:都有相同的问题 仅供参考,这是我尝试使用的类(Matrix4f.js): if (typeof(exports) === 'undefined') { global

我开始使用JS进行开发,因为我想学习WebGL。多年来,我一直使用强类型的类,如java、C++和C语言。但是现在我遇到了JS的严重问题,因为它没有类,变量也没有类型

所以我尝试使用IDE来帮助我完成一些代码等等。但我无法创建一个“类”并使它在几个IDE上被识别。Tryied NetBeans、Cloud9和Eclipse:都有相同的问题

仅供参考,这是我尝试使用的类(Matrix4f.js):

if (typeof(exports) === 'undefined') {
    global = typeof(window) !== 'undefined' ? window : this;
}
else {
    global = exports;
}

function Matrix4f(array){
    var mat4f = new Float32Array(array);

    mat4f.translationMatrix = function(x, y, z){
        return new Float32Array([
            1.0, 0.0, 0.0, 0.0,
            0.0, 1.0, 0.0, 0.0,
            0.0, 0.0, 1.0, 0.0,
            x,   y,   z,   1.0
        ]);
};

} 


Matrix4f.create = function(){
    return new Matrix4f([
            1.0, 0.0, 0.0, 0.0,
            0.0, 1.0, 0.0, 0.0,
            0.0, 0.0, 1.0, 0.0,
            0.0, 0.0, 0.0, 1.0
        ]);
};

Matrix4f.translationMatrix = function(x, y, z){
    return new Float32Array([
            1.0, 0.0, 0.0, 0.0,
            0.0, 1.0, 0.0, 0.0,
            0.0, 0.0, 1.0, 0.0,
            x,   y,   z,   1.0
        ]);
};

Matrix4f.scalingMatrix = function(x, y, z){
    return new Float32Array([
            x,   0.0, 0.0, 0.0,
            0.0, y,   0.0, 0.0,
            0.0, 0.0, z,   0.0,
            0.0, 0.0, 0.0, 1.0
        ]);
}; 

global.Matrix4f = Matrix4f;
因此,在Index.html上进行导入并尝试在其他JS文件上使用下面的代码时,IDE会说“Matrix4f”是一个未声明的变量

var mat4 = Matrix4f.create();
var mat4_2 = new Matrix4f([0.0]);
所以我做错了什么,或者这是JS对IDE的限制?还有没有IDE没有这个问题

我不是在要求“最好的”,我只是想使用一些完整的代码…就这样!若我尝试在浏览器上使用它,它运行良好,所以代码上并没有语法错误(我想)


无论如何,谢谢你的帮助

如果要使用类和强类型成员,可以尝试使用TypeScript。这是一个非常好的javascript超级集合,它提供了Java和C#中使用过的所有好东西


有一些用于某些文本编辑器和IDE的插件,Visual Studio 2012非常好地支持它。

Visual Studio 2012支持这种开箱即用的代码完成。davesters81的回答提到它是TypeScript的一个不错的选择,但即使没有TypeScript,您也可以在VS中获得良好的JavaScript intellisense支持(市场上最好的支持之一)

证据(我将矩阵代码复制粘贴到site.js中):


我打赌那些anon包装器正在隐藏你的代码。。。另外,VS2012拥有迄今为止我所见过的最好的JS暗示/解析功能…顺便说一句,为什么要使用那样的嵌套IIFE?@dandavis试图删除嵌套的包装器,但没有解决。但是建议WebGL应用程序使用此类型脚本?我的意思是,在开发WebGL游戏时,我们需要性能和良好的内存管理,而使用这种类型脚本,我可以在JavaScript中达到这样的效果?它可以编译成简单的JavaScript。它添加了很多不错的东西,比如类、继承、静态类型、简单的模块支持、泛型等等。但它都可以编译成javascript,并且没有任何额外的开销会影响它。就我个人而言,我认为这对游戏开发非常有用。