
307
レシピ 9.3 モジュールをリファクタリングする
% node basic.js
{ duration: { hours: 0, minutes: 0, seconds: 5, milliseconds: 186 },
bitrate: 128000,
filesize: 82969,
timestamp: 5186,
timesig: '00:00:05' }
レシピ
9.3
モジュールをリファクタリングする
レシピ
9.2
で作成した
mp3dat
モジュールのモックアップは、コンセプトの理解には役立ちます。
また、小規模でシンプルに、比較的狭い適用範囲で利用するモジュールとしては十分です。
しかし、
Node
モジュール開発者の間で一般的に利用されるのはプロトタイプパターンでの開発
です。プロトタイプパターンは
Node
のコアモジュールの構築でも使われており、
JavaScript
言語
の基礎的な要素でもあります。
プロトタイプ継承は比較的効率よくメモリを利用できます。プロトタイプ継承されたメソッド
は、それ自身が呼ばれるまでインスタンス化されません。また、一度呼び出されると、その後はイ
ンスタンスを再利用し、メソッドが呼び出されるたびにインスタンス化されることはありません。
一方、プロトタイプパターンで書き換えた場合、レシピ
9.2
で作成した関数型を採用したスタイ
ルで記述したプログラムよりもわずかに遅く動作するかもしれません。メソッドを呼び出すと、
JavaScript
エンジンはプロトタイプチェーンを横断してメソッドを探します。そのためのオーバー ...