3

私はJavascriptの初心者です。私は他の誰かが書いた次のコードを見ています:

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

...

var meeting = new MeetingPage();

私が見てきたことから、MeetingPage関数は、後で誰かが会議で保持するオブジェクトを作成すると思います。MeetingPage.colorsとは何ですか?MeetingPageプレフィックスはある種のグローバルですか?それはある種の「これ」のポインタですか?

任意の提案をいただければ幸いです。

4

3 に答える 3

8

それは実際にはただの悪いコードです。 関数MeetingPage.colors = new Object();で呼び出されるプロパティを設定しています。つまり、次のようcolorsになります。MeetingPage

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

JavaScriptのすべての関数はオブジェクトであるため、これは完全に有効です。問題は、会議ページのインスタンスが複数ある場合です。

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

投稿したコードはリセットされcolorsます。として記述するか、最初のスニペットのように関数の外部this.colors = {}に設定する必要があります。

于 2011-05-08T01:06:37.577 に答える
0

この話は、JavaScriptでさまざまなオブジェクトパターンを調べたときに非常に役立ちました。サンプルコードは2番目のリンクに含まれています(ビデオで紹介されています)。

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

于 2011-05-08T01:21:51.843 に答える
0

これは、クラスプロパティを作成するためのJavaScript構文です 。これはインスタンスプロパティではなくクラスプロパティであることに注意してください。つまり、クラスのすべてのインスタンスで共有されます。(C ++を知っている場合、これは静的クラスのようなものです)しかし、コンストラクター自体の中にクラスプロパティを配置することは有効だとは思いませんでした。新しいMeetingPageが作成されるたびに、colorsクラスのプロパティが消去されると思います。

于 2011-05-08T01:28:10.133 に答える