ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript isPrototypeOf と hasOwnProperty_js オブジェクト指向の違い

JavaScript isPrototypeOf と hasOwnProperty_js オブジェクト指向の違い

WBOY
WBOYオリジナル
2016-05-16 18:33:11852ブラウズ
1. isPrototypeOf
isPrototypeOf は、指定されたオブジェクト object1 が別のオブジェクト object2 のプロトタイプ チェーンに存在するかどうかを判断するために使用され、存在する場合は true を返し、そうでない場合は false を返します。
形式は次のとおりです:
object1.isPrototypeOf(object2);
object1 はオブジェクトのインスタンスであり、
object2 はそのプロトタイプ チェーンがチェックされる別のオブジェクトです。
プロトタイプ チェーンを使用すると、同じオブジェクト タイプの異なるインスタンス間で機能を共有できます。
object2 のプロトタイプ チェーンに object1 が含まれている場合、isPrototypeOf メソッドは true を返します。
object2 がオブジェクトではない場合、または object1 が object2 のプロトタイプ チェーンに現れない場合、isPrototypeOf メソッドは false を返します。
使用例は次のとおりです。
コードをコピーします コードは次のとおりです:

var re = /^ s*/;
// ここで正規表現オブジェクトを定義します
// RegExp が re のプロトタイプ チェーン オブジェクトであるかどうかを確認し、true を返します
var bIsptt = RegExp.prototype.isPrototypeOf( re);

2. hasOwnProperty
hasOwnProperty は、オブジェクトがプロトタイプ チェーンにこの属性を持っているかどうかを確認できません。この属性はオブジェクト自体のメンバーである必要があります。
プロパティまたはメソッドがプロトタイプ チェーンではなくオブジェクト自体によって定義されている場合は true を返し、それ以外の場合は false を返します。
object.hasOwnProperty(proName); >判断 proNameの名前はオブジェクトオブジェクトのプロパティやオブジェクトではありません。使用例は次のとおりです。


//検出できないため false を取得します。 プロトタイプ チェーン内のプロパティ
var bStr = "Test String".hasOwnProperty("split");
// String オブジェクトのプロトタイプには既にこのプロパティがあるため、自然に返されます。 true
var bStr1 = String.prototype.hasOwnProperty("split");
// プロトタイプ内のプロパティが検出されないため、true を返します
var bObj = ({fnTest:function(){}} ).hasOwnProperty("fnTest");
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。