Javascript对象问题

时间:2011-05-08 01:03:20

标签: javascript object globals

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

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

...

var meeting = new MeetingPage();

从我所看到的情况来看,我相信MeetingPage函数会创建一个后来有人在会议中保留的对象。什么是MeetingPage.colors? MeetingPage前缀是某种全局的吗?它是某种“这个”指针吗?

任何建议都将不胜感激。

3 个答案:

答案 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/?p=94

http://alexsexton.com/inheritance/demo/

http://alexsexton.com/?p=51

当然,您还应该阅读http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

HTH

答案 2 :(得分:0)

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