3

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

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

...

var meeting = new MeetingPage();

从我所见,我相信 MeetingPage 函数创建了一个对象,以后有人在会议中持有该对象。什么是 MeetingPage.colors?MeetingPage 前缀是某种全球性的吗?它是某种“this”指针吗?

任何建议,将不胜感激。

4

3 回答 3

8

这实际上只是糟糕的代码。 MeetingPage.colors = new Object();正在设置colorsMeetingPage 函数调用的属性,即:

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

这是完全有效的,因为 JavaScript 中的所有函数都是对象。问题是,如果您有多个会议页面实例:

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

您发布的代码将重置colors。它应该写成this.colors = {},或者应该像我的第一个片段一样设置在函数之外

于 2011-05-08T01:06:37.577 回答
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

高温高压

于 2011-05-08T01:21:51.843 回答
0

这是用于创建 类属性的 JavaScript 语法。请注意,它是属性而不是实例属性,这意味着它在类的所有实例之间共享。(如果您知道 C++,这就像一个类静态)但是,我认为将类属性放在构造函数本身内是无效的。我认为每次创建新的 MeetingPage 时,颜色类属性都会被清除。

于 2011-05-08T01:28:10.133 回答