Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个Javascript语法是什么意思?_Javascript_Debugging - Fatal编程技术网

这个Javascript语法是什么意思?

这个Javascript语法是什么意思?,javascript,debugging,Javascript,Debugging,我正在使用ROS结构,调试时遇到了一些问题,我发现了以下代码片段: ros.visualization.GLNode = Class.extend({ init: function () { this.meshGroupIDs = [ ]; this.matrix = sglIdentityM4(); this.children = [ ]; }, }); 这些线是什么意思 ros.visualization.

我正在使用ROS结构,调试时遇到了一些问题,我发现了以下代码片段:

ros.visualization.GLNode = Class.extend({
    init: function () {
        this.meshGroupIDs = [ ];
        this.matrix       = sglIdentityM4();
        this.children     = [ ];
    },
});
这些线是什么意思

ros.visualization.GLnode::它正在尝试加载一些文件吗?这个
代表什么

extend::这是做什么的?它是否试图扩展类,如果是,那么是哪一个?以我的方式,它将是
GLnode

this.matrix::当我看到
这个
命令时,我总是怀疑它做了什么

init:function()::这个函数在js中是什么意思?这是一个关键词吗?如果不是,那么为什么每个人都在
onloadbody
窗口中使用它。onload()

ros.visualization.GLNode = Class.extend({
这是一个新类(或对象类型)的定义,它使用某种javascript库,其中包含函数class.extend()


这是名为“init”的新类上属性的定义。属性的类型是“function”,这意味着它的工作方式类似于一个方法,并且可以被调用


这是此类对象上成员变量的定义,并将其初始化为空数组


这是thisclass对象上另一个成员变量的定义,并将其初始化为sglIdentityM4()函数调用的返回值


这是此类对象上成员变量的定义,并将其初始化为空数组


“this”是对本地对象的引用,是您处理所处对象的实例变量的方式

ros.visualization.GLNode
操作符允许您访问对象属性,因此
ros.visualization.GLNode=…
意味着有一个名为
ros
的对象,具有
visualization
属性,您正在为该对象的
GLNode
属性分配某些内容

类扩展
Class.extend
不是JavaScript的内置部分,因此如果不知道它是如何定义的,就不可能确切地知道它在做什么。我可以从名字和它的使用方式猜出它创建了一个新的“类”或扩展了一个现有的类。代码正在传递一个对象文本(告诉它如何定义类的
{…}
部分)

这是矩阵
这是调用函数的上下文。在对象上调用函数时(在本例中为
someGLNodeObject.init()
),
this
将设置为该对象。因此
this.matrix=sglIdentityM4()
正在设置当前对象的
矩阵
属性

init:function()
在对象文本中定义一个名为
init
的函数。
Class.extend
函数可能像构造函数一样使用
init
函数来初始化新的
GLnode
实例。

我认为回答您所有问题的最佳方法之一是阅读javascript入门,了解语言的功能和用法。。这是我喜欢的:我发现了一些有用的东西,可能对你也有帮助
init: function () {
this.meshGroupIDs = [ ];
this.matrix = sglIdentityM4();
this.children = [ ];