JSConf JP

mizdra

mizdra

Web Application Engineer at Hatena Co., Ltd.

10:5011:00(10 min)

LT: あなたの知らない Function.prototype.toString() の世界

  • Japanese

JavaScript には Function.prototype.toString() という API があります。この API を使うと、関数本体のソースコードを文字列として取得できます。 一見すると何の使い道があるか分からないかもしれません。しかし、関数本体のソースコードを取得できるということは、実行時に関数のソースコードを静的解析できることを意味します。また、関数をシリアライズしてどこかに転送した後、デシリアライズして実行するといったことも可能です。この特徴は、JavaScript に大きな力をもたらします。 このトークでは、 Function.prototype.toString() はどんな API なのか、どういう使い道があるのか、世の中のライブラリで利用されている実用的なものから、狂った使い方まで紹介します。

  • リモート関数 (puppeteer の page.evaluate())
  • ネイティブコード判定
  • tempalte literal を使わない複数行文字列リテラル
  • etc...