Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erklärung, wie Javascript Objekte erhält und kopiert.

Detaillierte Erklärung, wie Javascript Objekte erhält und kopiert.

伊谢尔伦
伊谢尔伦Original
2017-07-21 13:37:421285Durchsuche

Verstehen Sie alle Eigenschaften und Methoden eines JS-Objekts, erhalten Sie alle Eigenschaften und Methoden eines Objekts. Der Kerncode und das Prinzip lauten wie folgt:

function displayProp(obj){  
  var names="";   
  for(var name in obj){   
    names+=name+": "+obj[name]+", "; 
  } 
  alert(names); 
}

Wenn Sie Kennen Sie alle Eigenschaften dieses Objekts. Natürlich können Sie ein neues erstellen und jedem Attribut einen Wert zuweisen, und Sie können dies tun, aber was ist, wenn Sie es nicht wissen? Wie erstelle ich ein Objekt mit demselben Inhalt?

var obj={ colkey: "col", colsinfo: "NameList" }

Der einfachste Weg ist die Verwendung von for in.
obj2 hat beispielsweise genau die gleichen Attribute wie obj.

var obj2=new Object(); 
for(var p in obj) 
{ 
var name=p;//属性名称 
var value=obj[p];//属性对应的值 
obj2[name]=obj[p]; 
}

Tatsächlich weist diese Methode bestimmte Einschränkungen auf Der Schlüssel ist: Es gibt bestimmte Einschränkungen für for in js. Es werden nicht alle Eigenschaften des Objekts durchlaufen, sondern nur die vom js-Kern definierten Methoden, z. B. tostring() Alle im Code definierten Eigenschaften sind alle aufzählbar (können speziell als nicht aufzählbar definiert werden). Daher ist diese Methode ausreichend.
Ob ein Objekt vollständig sein kann, können wir anhand des Attributs propertyIsEnumerable beurteilen. Die Beschreibung lautet wie folgt:
propertyIsEnumerable-Attribut
Gibt einen booleschen Wert zurück, der angibt, ob das angegebene Attribut Teil eines Objekts ist und das Attribut Ob es aufzählbar ist.
object.propertyIsEnumerable(proName)
Parameter
object
Erforderlich. ein Objekt.
proName
Erforderlich. Ein Zeichenfolgenwert für den Eigenschaftsnamen.
Erklärung
Wenn proName im Objekt vorhanden ist und mithilfe einer For...In-Schleife erschöpft werden kann, gibt die Eigenschaft propertyIsEnumerable „true“ zurück. Die Eigenschaft „propertyIsEnumerable“ gibt „false“ zurück, wenn das Objekt nicht über die angegebene Eigenschaft verfügt oder wenn die angegebene Eigenschaft nicht aufzählbar ist. Normalerweise sind vordefinierte Eigenschaften nicht aufzählbar, während benutzerdefinierte Eigenschaften immer aufzählbar sind.
propertyIsEnumerable-Eigenschaft berücksichtigt keine Objekte in der Prototypenkette.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie Javascript Objekte erhält und kopiert.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn