如何让IDE识别JavaScript;“类”;在其他文件中引用
我开始使用JS进行开发,因为我想学习WebGL。多年来,我一直使用强类型的类,如java、C++和C语言。但是现在我遇到了JS的严重问题,因为它没有类,变量也没有类型 所以我尝试使用IDE来帮助我完成一些代码等等。但我无法创建一个“类”并使它在几个IDE上被识别。Tryied NetBeans、Cloud9和Eclipse:都有相同的问题 仅供参考,这是我尝试使用的类(Matrix4f.js):如何让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
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,并且没有任何额外的开销会影响它。就我个人而言,我认为这对游戏开发非常有用。