タイプ関数のワーカーIS 。typeof
演算子を使用して確認できます。ただし、Function コンストラクターのプロトタイプを継承しないため、Function ではありませんinstanceof
。
より実用的な例を次に示します。
function fun(){};
Function.prototype.foo = 'my custom Function prototype property value';
console.log(fun.foo); //my custom Function prototype property value
console.log(fun instanceof Function); //true
console.log(typeof Worker); //function, the constructor
console.log(Worker.foo); //undefined, this host constructor does not inherit the Function prototype
console.log(Worker instanceof Function); //false
var worker = new Worker('test.js');
console.log(typeof worker); //object, the instance
console.log(worker.foo); //undefined, instance object does not inherit the Function prototype
console.log(worker instanceof Function); //false
MDNから:
オペレーターは、オブジェクトのinstanceof
プロトタイプ チェーンにコンストラクターのプロトタイプ プロパティがあるかどうかをテストします。
Worker は Function コンストラクターのプロトタイプを継承しないため、Function のインスタンスではありません。
typeof
オペレーターを使用して、ユーザーのブラウザーが Web Workers API をサポートしているかどうかを確認する例を次に示します。
if (typeof window.Worker !== 'undefined') {
alert('Your browser supports Web Workers!');
} else {
alert('Sorry, but no.'); //too lazy to write a proper message for IE users
}
フィドル