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

时间:2013-06-19 21:54:27

标签: javascript ide code-completion

我开始用JS开发,因为我想学习WebGL。多年来我一直在使用强类型类,如Java,C ++和C#。但是现在我对JS有很多问题,因为它没有类和变量都没有输入...

所以我正在尝试使用IDE来帮助我完成一些代码。但我无法创建一个“类”并使其在多个IDE中被识别为它。经过尝试的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没有这个问题?

我不是要求“最好的”我只想使用一些完整的代码......就这样吧!如果我尝试在浏览器上使用它,它工作正常,所以代码上没有语法错误(我认为)。

无论如何,谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

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

http://www.typescriptlang.org/

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

答案 1 :(得分:0)

Visual Studio 2012支持开箱即用的此类代码。 davesters的答案提到它是TypeScript的一个很好的选择,但即使没有TypeScript,你也可以在VS中获得良好的 JavaScript intellisense支持(市场上最好的支持之一)。

证据(我将Matrix-code复制粘贴到site.js中):

enter image description here