関数はこのインボーカーを呼び出し元へと返します。環境をロードしてスクリプトブロックを実行するのですが、スクリプトブロックは環境がロードされるスコープと同一スコープで実行されます。これにより、本来親スコープで宣言されたはずの変数でもスクリプトブロックから変更することが可能となります。関数内の変数がスクリプトブロックの実行に影響を与えないようにするためです。クロージャストアに保存する際には、弱い参照を保存しています。対象になることができます。関数が呼び出された際にエントリも削除されます。クロージャは、インボーカーのノートプロパティとしても保存されています。一つ注意点があります。ノートプロパティが失われてしまうのです。対象になってしまうということです。一度変数に保持してから更に関数として保持すればノートプロパティは失われませんが、これも管理が複雑になるのでお勧めしません。]インボーカーのノートプロパティにクロージャが保存されている理由はクロージャの寿命の制御のためですが、これは嬉しい副作用をもたらします。次のように、インボーカーのノートプロパティを通してスクリプトブロックと環境を確認することができるのです。関数は、以下の記事からまとめてダウンロードできます。02:49スクリプトブロックのパラメータ情報を取得する関数。]target対象のスクリプトブロック。paramName取得するパラメータの名前。省略した場合は全てのパラメータを取得。]スクリプトブロックのパラメータ情報。関数は、以下の記事からまとめてダウンロードできます。メソッドの引数に列挙値を指定する時に文字列で指定できるってのは知っていたけど、ビットフィールドの列挙値の組み合わせは文字列で指定できないと思い込んでた。実はカンマ区切りで繋げて記述すればいけるってことに今更気付いた。};これは知らないと損だなぁ。結果が発表されました~。コンテスト結果発表で、僕の作品が選考委員特別賞を頂きました!プロトタイプチェーンというのが僕の作品です。(笑)ダウンロードはこちらからです。Prototype.zip実は、コンテスト向けの作品は当初全く違う作品を作ろうとしていました。コマンドレットを使って疑似的にクラスのようなものを書き始めました。気付いたら、疑似的なクラスを作るための機構に凝りだしてしまいました。作品の路線を変更することにしました。プロトタイプベースオブジェクト指向の流れを汲んでいるのだと思います。プロトタイプチェーンを実装しよう。ないはずだ!とその時考えたわけです。プロパティが備わっているかどうかを試しました。思い込んでいたので、備わっていないとわかった時には結構テンションが下がりました。あの時の落胆をバネに、この作品を完成させることができたような気がしないでもないです。01:27ビルド自動化のために。使用して記述されたユニットテストを実行する関数。]testAssemblyPathsユニットテストアセンブリのパスの配列。出力ファイルの出力先ディレクトリのパス。