Global オブジェクトは、js インスタンスにプロパティを追加し、そのプロパティにアクセスすることによってデータの共有を可能にする、きわめて一般的な Javascript オブジェクトです。Global オブジェクトのプロパティに対し、js の外部から Max メッセージによって完全にアクセスすることも可能です。Global オブジェクトに格納されたメソッドに対する Max からの実行はサポートされていません。しかし、メソッドは、当然ながら、Global オブジェクトの内部に格納することができるものの一つです。
g = new Global(name);
name は、Global のユニークな識別名となる文字列を表します。
Global は基本的に、直接アクセスできない Javascript オブジェクトへの参照です。このオブジェクトは、アーギュメントとして与えられた、名前を伴ったMax シンボルに結び付けられます(これは、後述するように、Max からアクセスすることが可能です)。これは、アクセスされるごとに、そのアクセスを公開されていない隠れた Javascript オブジェクトに渡します。このことは、コードの中では任意の数の Global オブジェクトを作り、任意の数のインスタンスを作ることができ、それら全てが同じ名前を持っている場合には同じデータを共有できるということを意味します。このように、Global はネームスペースと良く似ています。
例:g = new Global("name"); g.bob = 12; h = new Global("name"); post(h.bob); // 12 をプリントします。
sendnamed (receive_name, property_name)
例:
g = new Global("xyz"); g.ethyl = 1000; g.sendnamed("fred","ethyl");
fred という名前を付けられたすべての receive オブジェクトのアウトレットから、1000 が送信されます。
名前を持ったオブジェクトへのメッセージの送信に Max を使うためには、メッセージボックスの中に、セミコロンをタイプし、その後に受信側の名前と、送信したいメッセージを入力します。js の Global オブジェクトのプロパティをセットするためには、プロパティ名のあとに1つまたはそれ以上の値(複数の値の場合はプロパティの値を配列でセットします)を続けます。すでに、Global xyz オブジェクトが作られていると仮定すると、次のようになります。
george プロパティの値を 30 にセットします。
;xyz george 30
frank プロパティの値を、"x"、"y"、"z" という3つの文字列による配列でセットします。
;xyz frank x y z
また、Max から、メッセージ sendnamed を使って、名前を持った receive オブジェクトにプロパティの値を出力することができます。次の例では、js の Global オブジェクト xyz の中の frank プロパティが現在持っている値を、 hubert という名前を持った全ての receive オブジェクトに送信します。
; xyz sendnamed hubert frank
微妙な違いに注意して下さい。Max を使ってプロパティをセットする場合には、Javascript プロパティは変更されますが、それ以上の動作は起こりません。sendnamed()を使った場合には、receive オブジェクトが動作し、プロパティの値を出力します。