の with ステートメント

を考えるその2。TJS のリファレンスを読んでみた。

ステートメントまたはブロック」内で、左側が省略された . (ドット)演算子が使用された場合、その . (ドット)演算子が参照するオブジェクトは、with ステートメントの expression で指定したオブジェクトになります。

http://devdoc.kikyou.info/tvp/docs/tjs2doc/contents/with.html

たしか VB も同じ類だったかな。
けど、TJS だと with よりもこっちのほうが気になるんだよなぁ……。

incontextof 演算子は、左にあるものを先に評価し、次に右にあるものを評価します。左にあるものを評価した結果をオブジェクトとして、そのオブジェクトのコンテキスト部分を、右にあるものを評価した結果と置き換えたものが演算全体の結果となります。

http://devdoc.kikyou.info/tvp/docs/tjs2doc/contents/expr_and_op.html

例題を出さないとなんのこっちゃだけど、TJS だと

function printThis {
    System.inform(this);
}
(printThis incontextof "Hello world!")();  // -> Hello world!

なんていう強烈な式が書けたりする。global で定義した関数を特定のコンテキストで呼び出したいときなんかに便利。