//1
//Objet.create(proto)
//Object.create(proto,descripteurs)
//Créer un objet en utilisant le prototype et les propriétés spécifiés
//Paramètres :
//proto : Le prototype de l'objet nouvellement créé, qui peut être nul
//descripteurs : un objet facultatif qui mappe les noms d'attributs aux descripteurs d'attributs
//Renvoie un objet nouvellement créé, hérité du proto, et possédant les propriétés des descripteurs.
//2
//Object.defineProperties(o,descriptors)
//Créer ou configurer plusieurs propriétés de l'objet
//Paramètres :
//o : L'objet sur lequel créer ou configurer les propriétés
//descripteurs : objet qui mappe les noms d'attributs aux descripteurs d'attributs
//Retour de l'objet o
//3
//Object.defineProperty(o,name,desc)
//Créer ou configurer une propriété de l'objet
//Paramètres :
//o : L'objet sur lequel les propriétés seront créées ou configurées
//name : Nom de l'attribut à créer ou configurer
//desc : Un objet descripteur de propriété décrivant la nouvelle propriété à créer ou la modification de la propriété existante
//Retour de l'objet o
//4
//Objet.freeze(o)
//Définit un objet comme immuable et n'affectera pas les propriétés héritées
//Paramètres :
//o : Objet à geler
//Retour vrai|faux
//5
//Object.getOwnPropertyDescriptor(o,name)
//Paramètres :
//o : un objet
//name : nom de l'attribut à interroger
//Interroger les caractéristiques d'un attribut
//Renvoie un objet descripteur de propriété pour la propriété spécifiée de l'objet. Si la propriété spécifiée n'existe pas, renvoie undéfini.
/*
Un descripteur d'attribut est un objet JavaScript ordinaire qui décrit les caractéristiques d'un objet. Il existe deux types d'attributs JavaScript. Les attributs de données ont une valeur et trois propriétés : énumérable,
Les propriétés d'accesseur sont inscriptibles et configurables. Elles ont une méthode getter et/ou setter et une énumérabilité.
Descripteur de l'attribut de données :
{
valeur : n'importe quelle valeur javascript,
inscriptible : vrai|faux,
énumérable : vrai|faux,
configurable : vrai | faux
>
Descripteur de la propriété de l'accesseur :
{
get : fonction ou non défini : remplacer la valeur de l'attribut
set : fonction ou undéfini : remplacer l'écriture
énumérable : vrai | faux,
configurable : vrai | faux
>
*/
//6
//Object.getOwnPropertyNames(o)
//Renvoie le nom de l'attribut non hérité
//Paramètres :
//o : un objet
//Renvoie un nom contenant toutes les propriétés non héritées de o, y compris les propriétés non énumérables. {enumerable:false}
//7
//Object.getPrototypeOf(o)
//Paramètres :
//o : un objet
//Renvoie le prototype d'un objet
//8
//Object.hasOwnProperty(propname);
//Paramètres :
//propname est une chaîne contenant le nom de propriété de l'objet
//Vérifier si une propriété est héritée
//Retour vrai|faux
//9
//Object.isExtensible(o);
//Déterminer si de nouveaux attributs peuvent être ajoutés à un objet
//Paramètres :
//o : Objet dont l'évolutivité doit être vérifiée
//Le retour peut être ajouté comme vrai|ne peut pas être ajouté comme faux
//Description : Tous les objets sont extensibles lors de leur création jusqu'à ce qu'ils soient transmis à Object.preventExtensions(o) Object.seal(o) ou Object.freeze(o);
//10
//Object.isFrozen(o)
//Déterminer si l'objet est immuable
//Paramètres :
//o : Objet à vérifier
//Si o a été figé et ne change pas, c'est vrai sinon, c'est faux
//11
//object.isPrototypeOf(o)
//Déterminer si l'objet actuel est le prototype d'un autre objet
//Paramètres :
//o : Tous les objets
//Si l'objet est le prototype de o, c'est vrai. Si o n'est pas un objet ou si l'objet n'est pas le prototype de o, c'est faux.
//12
//Object.isSealed(o)
//Déterminer si les attributs d'un objet peuvent être ajoutés ou supprimés
//Paramètres :
//o : Objet à vérifier
//Si o est fermé, c'est vrai, sinon c'est faux.
// Un objet est fermé si de nouvelles propriétés (non héritées) ne peuvent pas y être ajoutées et si les propriétés existantes (non héritées) ne peuvent pas être supprimées.
//La méthode couramment utilisée pour fermer un objet est Object.seal(o) ou Object.freeze(o)
console.log("========================================== ===========")
//13
//objet.keys(o)
//Renvoyer le nom de la propriété énumérable gratuitement
//Paramètres :
//o : un objet
//14
//Object.preventExtensions(o)
//Interdire l'ajout de nouveaux attributs à un objet
//Paramètres :
// o : Objet extensible à définir
//Une fois défini sur non extensible, il ne peut jamais être modifié en extensible
console.log("========================================== ===========")
//15
//object.propertyIsEnumerable(propname)
//Vérifie si un certain attribut est visible dans la boucle for/in
//Paramètres
//propname : une chaîne contenant le nom de propriété spécifié de l'objet
//Si l'objet a une propriété non héritée nommée propname et que la propriété est énumérable, renvoie true.
//16
//Object.seal(o)
//Empêcher l'ajout ou la suppression de propriétés de l'objet
//Paramètres
//o : Objet à fermer
//Renvoie l'objet paramètre fermé o
//17
//Object.toLocaleString()
//Renvoie l'identifiant de chaîne localisé de l'objet
//La méthode toLocaleString() par défaut fournie par la classe Object appelle simplement la méthode toString().
//Mais veuillez noter que les autres classes (Array, Date, Number, etc.) définissent chacune leur propre version de cette méthode. Utilisé pour effectuer une conversion de chaîne localisée. Lors de la définition de votre propre classe, vous devrez peut-être également remplacer cette méthode.
//18
//objet.toString()
//Définir la représentation sous forme de chaîne d'un objet
//Dans les programmes javascript, la méthode toString() n'est généralement pas fréquemment appelée. Généralement, cette méthode est définie dans l'objet et le système l'appellera automatiquement si nécessaire pour convertir l'objet en chaîne.
//19
//Object.valueOf()
//La valeur originale de l'objet donné
//Renvoie la valeur d'origine associée à l'objet spécifié, si une telle valeur existe. S'il n'y a aucune valeur associée à l'objet modifié, renvoie l'objet lui-même