- typeofはリフレクションを利用していて重いのでコンストラクタでキャッシュしておくように変更