読者です 読者をやめる 読者になる 読者になる
スポンサーリンク

alert() と書くために,わざわざ行頭に戻らなくてもすむ方法

javascript 小ネタ hack


JavaScriptで,文字列の内容を確認するためには

alert( str );

のようなコードを書く。


しかし,本当は

str.alert();

のような書き方をしたい。 そう思うのでは。


文字列(「str」とか 「"hoge"」 )を書いてから,

そのあとで alert() と書きたい。


要するに,文字列変数をタイプした直後,「あ,この変数の内容を表示したいんだった」と気づいて,alert() を書くだけのためにわざわざ行頭に戻って,文字列変数を alert() で囲むのが面倒。


どうしたらよいか。

解決策


これでOK

"hoge".replace(/^.*$/,function(){alert(arguments[0])});

価値

タイプライターでJavaScriptをコーディングしているときなどに,とても役立つだろう。

(一度タイプした文字が取り消せないような状況)



※別解

もちろん,下記のような方法もあるのだが

// 全ての文字列オブジェクトのインスタンスメソッドとしてalert()を定義してしまう

String.prototype.alert = function(){window.alert(this)}; "fuga".alert();

この手は,「文字列変数をタイプしてしまった直後」には使えない。


参考

コードの説明:

JavaScriptで,文字列を反復する / 逆順に並び替える方法
http://language-and-engineering.hatenablog.jp/entry/20080924/1222174957

  • String#replace() の第二引数には,無名関数を渡す事が可能


このエントリの必要性:

日本語とオブジェクト指向
http://satoshi.blogs.com/life/2004/09...

  • 「オブジェクト指向ユーザインタフェース」とは,文書ファイルや音楽ファイルといった対象物(オブジェクト)を先にユーザーに選択させ,実行できるメニューコマンド(編集する、印刷する、演奏する、など)の幅をせばめ、使いやすくしようという発想

#8 達人プログラマー Dave Thomas(後編)
http://gihyo.jp/dev/serial/01/alpha-g...

  • 名著「達人プログラマー」の筆者Daveが,プログラミング言語としてRubyを好む理由
    • 頭の中で考えたプログラムをそのままコードに転写するのに非常に向いています。考えたままに書けばたいてい動く。


最近のタイプライターについて:

タイプライターはオワコン? いえいえ「USB Typewriter」は最先端ガジェットです
http://gadget.itmedia.co.jp/gg/articl...

  • タブレット・デバイスの外付けキーボードとして,「USB接続可能なタイプライター」が販売されている。
  • 誠に残念ながら,打ち間違いを訂正可能。