ホームページ  >  記事  >  ウェブフロントエンド  >  JAVASCRIPT_javascript スキルにおける hasOwnProperty() の役割を理解する

JAVASCRIPT_javascript スキルにおける hasOwnProperty() の役割を理解する

WBOY
WBOYオリジナル
2016-05-16 17:32:481052ブラウズ

JavaScript の hasOwnProperty 関数メソッドは、オブジェクトに指定された名前のプロパティがあるかどうかを示すブール値を返します。

hasOwnProperty() の使用方法:

object.hasOwnProperty(proName)
パラメータ オブジェクトは必須です。オブジェクトのインスタンス。
proName は必須です。プロパティ名の文字列値。

オブジェクトに指定された名前のプロパティがある場合、JavaScript の hasOwnProperty 関数メソッドは true を返し、それ以外の場合は false を返します。このメソッドは、プロパティがオブジェクトのプロトタイプ チェーン内にあるかどうかを確認できません。プロパティはオブジェクト自体のメンバーである必要があります。次の例では、すべての String オブジェクトが共通の分割メソッドを共有しています。以下のコードは false と true を出力します。

コードをコピー コードは次のとおりです。

var s = new String("JScript" );
print(s.hasOwnProperty("split"));
print(String.prototype.hasOwnProperty("split"));

hasOwnProperty: オブジェクトに指定した名前のプロパティまたはオブジェクトがあるかどうかを判断するために使用されます。ただし、このメソッドは、オブジェクトがプロトタイプ チェーンにプロパティを持っているかどうかを確認できないことに注意してください。プロパティはオブジェクト自体のメンバーである必要があります。形式は次のとおりです:

JSコード

1. object.hasOwnProperty(proName);

proName の名前がオブジェクト オブジェクトの属性であるかオブジェクトであるかを判断します。

1. 例 1:

var bStr = "Test String".hasOwnProperty("split"); // プロトタイプ チェーン内のプロパティが検出できないため false を取得します

しかし:

「テスト文字列」.split(" ") は正常に呼び出すことができます

2. 例 2:

var bStr1 = String.prototype.hasOwnProperty("split"); //String オブジェクトのプロトタイプにはすでにこのプロパティがあるため、当然 true を返します

3. 例 3

var bObj = ({fnTest:function(){}}).hasOwnProperty("fnTest"); // オブジェクトにプロパティが存在するため true を返します

オブジェクト オブジェクト

オブジェクト オブジェクト自体はあまり役に立ちませんが、他のクラスを理解する前に理解する必要があります。 ECMAScript の Object オブジェクトは Java の java.lang.object に似ているため、ECMAScript のすべてのオブジェクトはこのオブジェクトから継承され、Object オブジェクトのすべてのプロパティとメソッドは他のオブジェクトに表示されるため、Object オブジェクトを理解することができます。他のオブジェクトをよりよく理解できるようになります。

オブジェクト オブジェクトには次のプロパティがあります:

constructor

オブジェクトを作成する関数への参照 (ポインター)。 Object オブジェクトの場合、このポインタは元の Object() 関数を指します。
Prototype
オブジェクトのオブジェクト プロトタイプへの参照。すべてのオブジェクトに対して、デフォルトで Object オブジェクトのインスタンスを返します。

オブジェクト オブジェクトにもいくつかのメソッドがあります:

hasOwnProperty(property)

オブジェクトに特定のプロパティがあるかどうかを判断します。このプロパティは文字列として指定する必要があります。 (例: o.hasOwnProperty("name"))
IsPrototypeOf(object)
オブジェクトが別のオブジェクトのプロトタイプであるかどうかを判断します。
PropertyIsEnumerable
for...in ステートメントを使用して指定されたプロパティを列挙できるかどうかを判断します。
ToString()
オブジェクトの生の文字列表現を返します。 Object オブジェクトの場合、ECMA-262 ではこの値が定義されていないため、ECMAScript 実装が異なれば値も異なります。
ValueOf()
このオブジェクトに最も適合する元の値を返します。多くのオブジェクトでは、このメソッドによって返される値は ToString()
の戻り値と同じです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。