Maison  >  Article  >  interface Web  >  Explication détaillée de la façon dont javascript obtient des objets et copie des objets.

Explication détaillée de la façon dont javascript obtient des objets et copie des objets.

伊谢尔伦
伊谢尔伦original
2017-07-21 13:37:421228parcourir

Comprendre toutes les propriétés et méthodes d'un objet JS, obtenir toutes les propriétés et méthodes d'un objet, Le code de base et le principe sont les suivants :

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

Si vous connaître toutes les propriétés de cet objet Naturellement, vous pouvez en créer un nouveau et attribuer une valeur à chaque attribut, et vous pouvez le faire, mais que se passe-t-il si vous ne le savez pas ? Comment créer un objet avec le même contenu ?

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

Le moyen le plus simple est d'utiliser for in.
Par exemple, obj2 a exactement les mêmes attributs que obj

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

En fait, cette méthode a certaines limites. . La clé est qu'il existe certaines limitations pour for in dans js. Il ne traversera pas toutes les propriétés de l'objet, mais uniquement les propriétés énumérables. Les méthodes définies par le noyau js ne sont pas énumérables, comme tostring(), mais le. les propriétés définies dans le code sont toutes énumérables (peuvent être spécifiquement définies comme non énumérables). Cette méthode est donc suffisante.
Si un objet peut être exhaustif, nous pouvons le juger grâce à l'attribut propertyIsEnumerable. La description est la suivante :
attribut propertyIsEnumerable
Renvoie une valeur booléenne, indiquant si l'attribut spécifié fait partie d'un objet. et l'attribut S'il est énumérable.
object.propertyIsEnumerable(proName)
Paramètres
objet
Obligatoire. un objet.
proName
Obligatoire. Une valeur de chaîne pour le nom de la propriété.
Explication
Si proName existe dans l'objet et peut être épuisé à l'aide d'une boucle For...In, alors la propriété propertyIsEnumerable renvoie true. La propriété propertyIsEnumerable renvoie false si l'objet n'a pas la propriété spécifiée ou si la propriété spécifiée n'est pas énumérable. En règle générale, les propriétés prédéfinies ne sont pas énumérables, alors que les propriétés définies par l'utilisateur sont toujours énumérables.
La propriété propertyIsEnumerable ne prend pas en compte les objets dans la chaîne de prototypes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn