
260
8
章 ユニバーサル
JavaScript
8.3
クロスプラットフォーム開発の基礎
異なるプラットフォーム向けの開発で、我々がもっともよく直面するのは、コンポーネントの共通部
分を共有しつつ、プラットフォーム個別の細かい差異に合わせて異なる実装を提供するという問題で
す。この難問に突き当たったときに使える原則やパターンをいくつか調べていきましょう。
8.3.1
実行時のコード分岐
ホストプラットフォームに合わせて異なる実装を提供するための、もっとも簡単で直感的な技法は、
コードを動的に分岐させることです。そのためには実行時にホストプラットフォームを認識する仕組み
が必要で、認識結果により
if...else
文で実装を動的に切り替えます。一般的な方法としては、
Node
だけ、あるいはブラウザだけで利用可能なグローバル変数をチェックするという方法があります。たと
えば、グローバル変数
window
の存在をチェックします。
if(typeof window !== "undefined" && window.document) {
//
クライアント側のコード
console.log('Hey browser!');
} else {
//Node
側のコード
console.log('Hey Node.js!');
}
実行時分岐を使って
Node
とブラウザを切り替えるのは、この目的に使える方法としてもっとも直感
的で単純なパターンです。しかし、不便な点もあります。
●
両方プラットフォーム用のコードが同じモジュ