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