メモ
自主ゼミの関係で調べてます。というか、それ以前から興味があるので調べてました。
この前、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" のコンテキストで解釈されているみたい。