WebWorkerは、従来のJavaScriptの「ウィンドウ」コンテキストとは完全に別のスコープで実行されます。スクリプト自体がWebWorkerとして実行されているかどうかを判断するための標準的な方法はありますか?
私が考えることができる最初の「ハック」は、ワーカーのスコープに「ウィンドウ」プロパティがあるかどうかを検出することです。存在しない場合、これはWebWorkerとして実行していることを意味している可能性があります。
追加のオプションは、標準の「ウィンドウ」コンテキストに存在しないプロパティを検出することです。Chrome 14の場合、このリストには現在次のものが含まれています。
FileReaderSync
FileException
WorkerLocation
importScripts
openDatabaseSync
webkitRequestFileSystemSync
webkitResolveLocalFileSystemSyncURL
WorkerLocationの検出は実行可能な候補のように見えますが、それでも少しハックな感じがします。もっと良い方法はありますか?
編集:これは、実行中のWebWorkerに存在し、現在「ウィンドウ」にあるプロパティを判別するために使用したJSFiddleです。