関数は、toString() でアクセスすると、コードが取得できる
JavaScriptの関数は、toString() でアクセスすると、コードが取得できます。
コードのドキュメントを作るときとか、説明でコードが必要なときに、HTMLで書かなくても表示させられると、変更時の修正が不要で便利になるかも。
Tecd・Ed2008 DVD から ライトニングトークを参考。
やっていること。
関数を表示させて、
さらに、その関数を文字列置換で書き換えて、
さらに変更後を表示。
<div id="test" style="color:blue;" onMouseOver="mouse_in()" onMouseOut="mouse_out()"> ここにマウスをノセテネ </div> <hr/> <div id="src1">1</div> <hr/> <div id="src2">2</div> <hr/> <script type="text/javascript"> function set_text(e,t) { if (typeof e.textContent != "undefined") { e.textContent = t; } else { e.innerText = t; } } function mouse_in() { test.style.color = 'red'; } function mouse_out() { test.style.color = 'blue'; } function change_function() { var f1 = mouse_in.toString(); set_text(src1, f1); f1 = f1.replace("red", "green"); eval( "mouse_in = " + f1 ); var f2 = mouse_in.toString(); set_text(src2, f2); } change_function(); </script>