Stackoverflowの皆さん、こんにちは!私はMozillaDeveloperNetworkのJavaScriptガイドを読んでいて、オブジェクトモデルページの詳細でこの関数に出くわしました。
この関数は、オブジェクトがオブジェクトコンストラクターのインスタンスであるかどうかを確認することです。
function instanceOf(object, constructor) {
while (object != null) {
if (object == constructor.prototype)
return true;
if (typeof object == 'xml') {
return constructor.prototype == XML.prototype;
}
object = object.__proto__;
}
return false;
}
私の質問は、同じページから、それchris
がタイプのオブジェクトであると言っているEngineer
場合、次のコードがtrueを返すということです。
chris.__proto__ == Engineer.prototype;
ただし、上記のinstanceOf
関数では、次の比較式を使用して、オブジェクトがコンストラクター関数のインスタンスであるかどうかを確認します。
object == constructor.prototype
式は次のようにすべきではありません:
object.__proto__ == constructor.prototype
それとも私はここでポイントを逃していますか?よろしくお願いします!