JS オブジェクトのすべてのプロパティとメソッドを理解し、オブジェクトのすべてのプロパティとメソッドを取得します。中心となるコードと原則は次のとおりです:
function displayProp(obj){ var names=""; for(var name in obj){ names+=name+": "+obj[name]+", "; } alert(names); }
このオブジェクトのすべてのプロパティを知っていれば、自然に新しいものを作成して、各プロパティに新しいものを追加することもできますが、わからない場合はどうすればよいでしょうか。同じ内容のオブジェクトを作成するにはどうすればよいですか?
var obj={ colkey: "col", colsinfo: "NameList" }
最も簡単な方法は、for in を使用することです。
たとえば、obj2 は obj とまったく同じプロパティを持ちます
var obj2=new Object(); for(var p in obj) { var name=p;//属性名称 var value=obj[p];//属性对应的值 obj2[name]=obj[p]; }
実際、このメソッドには特定の制限があります。重要なのは、for in in js には特定の制限があるということです。すべてのプロパティは、tostring() などの列挙可能プロパティのみを横断しますが、コード内で定義されているプロパティはすべて列挙可能です (特別に非列挙可能として定義できます)。 )。したがって、この方法で十分です。
オブジェクトが完全に対象であるかどうかは、propertyIsEnumerable 属性によって判断できます。説明は次のとおりです。
propertyIsEnumerable 属性
指定されたプロパティがオブジェクトの一部であるかどうか、およびプロパティが列挙可能であるかどうかを示すブール値を返します。 。
object.propertyIsEnumerable(proName)
パラメータ
オブジェクト
必須。オブジェクト。
プロ名
必須。プロパティ名の文字列値。
説明
proName がオブジェクト内に存在し、For...In ループを使用して取得できる場合、propertyIsEnumerable プロパティは true を返します。 propertyIsEnumerable プロパティは、オブジェクトに指定されたプロパティがない場合、または指定されたプロパティが列挙可能でない場合に false を返します。通常、事前定義されたプロパティは列挙可能ではありませんが、ユーザー定義のプロパティは常に列挙可能です。
propertyIsEnumerable プロパティは、プロトタイプ チェーン内のオブジェクトを考慮しません。
以上がJavaScript がオブジェクトを取得し、オブジェクトをコピーする方法について詳しく説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。