我开始用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没有这个问题?
我不是要求“最好的”我只想使用一些完整的代码......就这样吧!如果我尝试在浏览器上使用它,它工作正常,所以代码上没有语法错误(我认为)。
无论如何,谢谢你的帮助!
答案 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中):