如何找出具体变量的来源?

时间:2013-07-10 05:55:44

标签: javascript variables webgl libraries

我正在尝试学习WebGL和JavaScript,因为我想使用我的图形编程技能来创建3D Web应用程序。我习惯于用C ++进行OpenGL编程。

现在,做一些教程,我遇到的变量既没有在任何地方声明,也没有包含在其他脚本中,据我所见。以下是两个例子:

khronos wiki tutorial一直在使用变量g,例如:

g.program = simpleSetup( /* ... */ );

g从未在此范围内声明过。如何找出它代表什么?当然,Google并没有多少搜索'g''javascript g'

另一个例子是使用mat4的{​​{3}},从以下内容开始:

mat4.identity(mvMatrix);

由于了解OpenGL,我理解这行代码:从modelview获取单位矩阵,但mat4来自哪里?在我自己的项目中使用这行代码会破坏我的脚本。谷歌收益为'mat4' voxolent beginners guide,但它也只是说使用:

mat4.create();

......如果没有进一步的步骤,这显然是行不通的。

我在这里缺少什么?当我在示例/教程/文档中看到未知变量时,我是否总是需要猜测/挖掘?如何在我的脚本中加入mat4?什么是g

请为我解释一下。

2 个答案:

答案 0 :(得分:1)

我发现mat4来自js/math/gl-matrix-min.js

以下是我使用谷歌浏览器的方式:

  1. 加载页面http://voxelent.com/html/beginners-guide/1727_04/ch4_ModelView_Rotation.html
  2. 按F12
  3. 切换到控制台选项卡并输入mat4,结果看起来它不是内置对象,因为我可以看到紧凑的源代码
  4. 切换到“来源”标签并切换到“来源”标签,查看树
  5. 刚刚展开了js文件夹并看到了math文件夹并展开了
  6. 看了很多mat4.set mat4.transpose ...
  7. 哦,第一行表明源代码来自https://github.com/toji/gl-matrix/

答案 1 :(得分:1)

关于变量“g”的问题,它只是一个全局可访问的变量,包含许多其他有用的变量。

在全球范围内,您声明var g = {};,之后,您可以通过gg.myGlProgram = simpleSetup(...)

将成员添加到g.myVertexBuffer = ctx.createBuffer(...)

这只是一个不错的JavaScript技巧