我是Javascript的初学者。我正在查看其他人写的以下代码:
function MeetingPage()
{
MeetingPage.colors = new Object();
}
...
var meeting = new MeetingPage();
从我所看到的情况来看,我相信MeetingPage函数会创建一个后来有人在会议中保留的对象。什么是MeetingPage.colors? MeetingPage前缀是某种全局的吗?它是某种“这个”指针吗?
任何建议都将不胜感激。
答案 0 :(得分:8)
实际上这只是糟糕的代码。 MeetingPage.colors = new Object();
在colors
函数上设置名为MeetingPage
的属性,即:
function MeetingPage(){ }
MeetingPage.colors = {};
这完全有效,因为JavaScript中的所有函数都是对象。问题是,如果您有多个会议页面实例:
var meeting1 = new MeetingPage();
var meeting2 = new MeetingPage();
您发布的代码将重置colors
。它应该写成this.colors = {}
,或者应该在函数中设置 ,就像在我的第一个代码段中一样。
答案 1 :(得分:0)
当我在javascript中使用不同的对象模式时,这个话题非常有用。示例代码包含在第二个链接中(视频介绍了它)。
http://alexsexton.com/inheritance/demo/
当然,您还应该阅读http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
HTH
答案 2 :(得分:0)
这是用于创建类属性的JavaScript语法。请注意,它是类属性,而不是实例属性,这意味着它在类的所有实例中共享。 (如果你知道C ++这就像一个类静态)但是,我认为将一个类属性放在构造函数本身中是不合适的。我认为每次创建一个新的SessionPage时,colors类属性都将被删除。