前回のサンプル(closure1/03.html)ではwatchボタンをクリックしても変数cntを表示することはできませんでした。変数cntはローカル変数ですから外部から直接アクセスできないのです。変数cntの値を得るためには、その値を返すfunctionを追加して対応しなければなりません。ここではクロージャに複数のfunctionを設定する方法を説明します。解説returnは1つしか値を返せないから...前回のサンプル(closure1/03.html)でクロージャを確認します。クロージャは以下の様にfunctionをreturnで返すため、1つの値しか返すことができません。これでは変数cntの値を返すfunctionを追加できません。countUpFunc;}しかしobjectオブジェクトを利用することで複数のfunctionを返すことが可能になります。objectオブジェクトのプロパティとして複数のfunctionを設定し、そのオブジェクトをreturnによって返せば良いのです。サンプル(closure2/01.html)を開き、以下の部分を確認して下さい。以下の4行目でobjectオブジェクト「myObj」を新規に作成しています。続く6〜9行目では、このオブジェクトにプロパティ「countUp」を設定し値として変数cntをカウントアップする機能(function)を設定します。同じようにして10〜12行目では変数cntの値を返すだけの機能をプロパティ「getCnt」として設定しました。13行目の部分でobjectオブジェクト「myObj」を返すようにします。myObjには2つのfunctionが設定されていますから、インスタンスでも2つの機能が利用できるのです。myObj;}初期化と実際の利用では初期化の部分を確認します。前回と同じなのですが、返値で渡されるのはfunctionではなくobjectオブジェクトなので、受け取る変数名をcntObjと変更しました。countMaster();次は実際に利用する部分です。cntObjにはfunctionが2つ付いたオブジェクトですから、どちらの機能を利用するか指定します。下記のカウントアップさせる部分を確認しましょう。カウントアップさせる機能を入れたプロパティはcountUpですから、以下の様にcountUpを指定します。countUpはfunctionが設定されていますから実行するためには以下の様に後ろに()を付けることを忘れないで下さい。構文的にはメソッドと同じです(実際にメソッドです。メソッドは機能を持ったプロパティなのです)。{cntObj.countUp();})変数cntを表示する部分も同様です。以下の様にcntObjに対してgetCntを実行するだけです。getCntは変数cntの値を返すので、その値を変数cntで受け取りアラートで表示します。cntObj.getCnt();alert(cnt);})これでローカル変数でも外部から値を取得できるようになりました。これではまだムービークリップのように扱うことはできません。次回も引き続きクロージャについて説明していきます。