メモ

自主ゼミの関係で調べてます。というか、それ以前から興味があるので調べてました。
この前、Bookmarkletの仕組みを調べているときに知ったこと。

これが一般的な名称なのかは知らない。Hatena::BookmarkのBookmarkletの中身で発見し、オライリーの「JavaScriptクックブック」で謎が解けた。

javascript: (式); ... ;

というのを、HTMLタグのsrc属性やhref属性に書いておくと、ブラウザが(式)を評価するらしい。今ここを見ているブラウザのURL欄に

javascript: alert("Hello, World.");

と入力すると分かります。
Bookmarkletはまさにこれなわけで、現在開いているページのコンテキストで(式)を評価するわけですね。たぶん。

  • apply()

どこで発見したっけな、忘れた。
関数(オブジェクト)の持つメソッドで、第一引数をその関数のレシーバ、それ以降の引数が関数の引数になるらしい。(自分で確認しただけなので嘘かもしれません)
ブラウザのURL欄に以下を入力することで確認できます。

javascript: (function() { alert( this ); }).apply("Hello.");

"this"(オブジェクト自身)が、Stringオブジェクト"Hello" のコンテキストで解釈されているみたい。