prototype.jsでプライベートメソッドを持つクラスを作る方法)ローカル変数の代わりに個人的には最近まったく使わなくなっていた「JavaScriptによるプライベートフィールドの隠蔽」だが、あるSEのつぶやきさんが取り上げていたので一言(でもないか)。リンク先記事で、Animal#defineメソッド内の実装で、プライベートフィールドをわざわざ定義しているが、これって、defineメソッドの仮引数「_sex」を_getSexで囲っちゃっても同じなんだよね。仮引数にアクセスできるし。Animal.SEXTYPE[_getSex()];27:}28:}仮引数も、関数内でvar宣言されたローカル変数も、このメソッド内の実行コンテキストにバインドされた変数オブジェクトのプロパティであることには変わりがないので、宣言するだけ冗長かと。同じIdentifierの仮引数とローカル変数の関係を見るために以下のコードを検証してみた。hoge'Firefox1.5でしか試していないが、たぶんどの処理系でも同じだと思う。ポイントはtest2とtest3の結果が同じになること。ついでだが、test3内でローカル変数宣言に代入式を与えると、当然仮引数「a」はオーバーライドされるので、違う結果になる。JavaScript」というよいコンテンツがあったのだが、現在は公開されていない。現在はアクセスしても404になるのでリンクはせず、当時のURLを掲載しておく。www.archive.orgなんかを利用するとまだ確認できるかも。program.exec:\temp>program.exeとか書いてあるじゃないですか。-helpオプションつけて起動してみたら、.zipのアーカイブをパラメータに渡せるとあった。modeD:\jsdb>ということは、「main.js」にメインコードを記述し、それをzipで固めて、チュートリアルにあるように結合コピーするとオリジナルのコンソールアプリケーションが作れるってことじゃない!こいつぁ便利かも。試してみたまず、以下のコードを「main.js」で保存。コードの中身はかなり適当。);そんで、main.jsをmain.zipとして固める。チュートリアルにある要領で、コピー。hello.exeとした。個のファイルをコピーしました。D:\jsdb>さて、hello.exeを実行。!!D:\jsdb>おお、ちゃんとできてるよ。使い道とりあえず思いつくのは、ライブラリ読み込み処理をmain.jsに記述してカスタマイズした実行環境にするってとこかな。思ったが、アーカイブ内のmain.jsを実行するとそのまま終了しちゃうので、この方法だとドラッグドロップ専用になっちゃうな(たぶんコマンドライン引数は受け取れるだろうから)。ライブラリロードを起動時になんとかするんだったら、-loadをくっつけたバッチファイルにしちゃえばよいんだし。吊ブックマークレットtumblrのキーボードショートカットが便利になっとる。Chrome編dataスキームの画像をブロックしてみるローカルストレージを確認したり消したりするブックマークレットそうそう、いまさらTwitter始めました。(9)このブログについてJavaScriptとかC#とかPHPとか。