Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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_Object_Globals - Fatal编程技术网

Javascript对象问题

Javascript对象问题,javascript,object,globals,Javascript,Object,Globals,我是Javascript的初学者。我正在查看其他人编写的以下代码: function MeetingPage() { MeetingPage.colors = new Object(); } ... var meeting = new MeetingPage(); 据我所见,我相信MeetingPage函数创建了一个对象,稍后有人会在会议中抓住它。什么是会议页面。颜色?MeetingPage前缀是否是某种全球性的?它是某种“this”指针吗 如果您有任何建议,我们将不胜感激。这实际上

我是Javascript的初学者。我正在查看其他人编写的以下代码:

function MeetingPage()
{
   MeetingPage.colors = new Object();
}

...

var meeting = new MeetingPage();
据我所见,我相信MeetingPage函数创建了一个对象,稍后有人会在会议中抓住它。什么是会议页面。颜色?MeetingPage前缀是否是某种全球性的?它是某种“this”指针吗


如果您有任何建议,我们将不胜感激。

这实际上只是一段糟糕的代码<代码>MeetingPage.colors=新对象()正在
会议页面
功能上设置名为
颜色
的属性,即:

function MeetingPage(){ }
MeetingPage.colors = {};
这是非常有效的,因为JavaScript中的所有函数都是对象。问题在于,如果您有多个会议页面实例:

var meeting1 = new MeetingPage();
var meeting2 = new MeetingPage();

您发布的代码将重置
颜色
。它要么应该写为
this.colors={}
,要么应该像在我的第一个代码片段中那样设置在函数的外部。

当我进入javascript的不同对象模式时,这篇演讲真的很有帮助。示例代码包含在第二个链接中(视频介绍了它)

当然,你也应该阅读


这是用于创建类属性的JavaScript语法。注意,它是一个属性而不是实例属性,这意味着它在类的所有实例中共享。(如果你知道C++是一个类静态的),但是我认为把构造函数本身放在构造函数里面是不正确的。我认为每次创建一个新的MeetingPage时,colors类属性都会被删除。

通常你会看到这里的
这个
,我不确定这是否会起到同样的作用(或者即使它打算这么做)。代码似乎很奇怪。本质上,每次您作为构造函数或函数调用
MeetingPage
时,colors属性都会发生更改。此外,colors属性甚至不会链接到
MeetingPage
的实例。如何将属性链接到实例?使用
this.
而不是
MeetingPage.
将其改为基于实例,它将是
this.colors={}取而代之。