ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript がオブジェクトを取得し、オブジェクトをコピーする方法について詳しく説明します。

JavaScript がオブジェクトを取得し、オブジェクトをコピーする方法について詳しく説明します。

伊谢尔伦
伊谢尔伦オリジナル
2017-07-21 13:37:421285ブラウズ

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 サイトの他の関連記事を参照してください。

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