objets

/*CREER UN OBJET (en fin de compte un objet destine uniquement a etre un prototype d'instances) AVEC UNE FONCTION: "constructor"*/ var Birds = function(beak, voice, feet) { this.beak = beak; this.voice = voice; this.feet = feet; this.getFeet = function() {return this.feet;}; }; /*CREER UNE INSTANCE DE L'OBJET prototypal EN SPECIFIANT DES valeurs aux PROPRIETES dont le nom est herite de l'objet prototypal*/ var Parrots = new Birds("hooked", "pan", "climbers"); var Crow = new Birds();//ce corbeau n'a rien de propre /*LES PROPRIETES DEFINIE DANS LA FONCTION NE SONT PAS CELLE DE LA FONCTION bien qu' ELLE LES FABRIQUE, ce sont les proprietes de l'objet prototypal*/ console.log("Birds est egal a ", Birds); //[Function] console.log("L'objet prototypal et le prototype des instances ", Birds.prototype.feet, Crow.prototype); console.log("Crow est egal a ", Crow); //{ beak: undefined, voice: undefined, feet: undefined } console.log("Parrots est egal a", Parrots); //{ beak: 'hooked', voice: 'pan', feet: 'climbers' } //LES INSTANCES CONSTRUITES PAR LA FONCTION SON DES OBJETS console.log("Parrots est de type ", typeof Parrots); /*UNE DEUXIEME MANIERE DE CONSTRUIRE UN SOUS-OBJET Ici on a Bird.prototype, puis Parrot, puis Jacot par ordre de typalite*/ var Jacot = Object.create(Parrots); Jacot.color = "gray"; Jacot.voice = "mimic"; console.log("la couleur du Jacot ", Jacot.color); console.log("la voix du Jacot ", Jacot.voice); /*ON PEUT UTILISER POUR LE JACOT LES PROPRIETES QU'IL A HERITE DE SES ANCETRES*/ console.log("bec de Jacot", Jacot.beak); //-->bec de Jacot hooked //LA LISTE DES NOMS DE PROPRIETES console.log("Jacot est egal a ", Object.keys(Jacot)); //-->[ 'color', 'voice' ] console.log("Has Parrots the own property called beak? ", Parrots.hasOwnProperty("beak"), '\n'); //-->Has Parrots the own property called beak? true //COMME MENTIONNE LES PROPRIETES DEFINIES //DANS LA FONCTION BIRDS NE SONT PAS A BIRDS PROPRES MAIS //A SON OBJET PROTOTYPAL console.log("Has Birds the own property called beak? ", Birds.hasOwnProperty("beak"), '\n'); //-->Has Birds the own property called beak? false console.log("Has Crow the own property called beak? ", Crow.hasOwnProperty("beak"), '\n'); //-->Has Crow the own property called beak? true console.log("The Birds object is prototype of Parrots ?", Birds.isPrototypeOf("Parrots"), '\n'); console.log("The inherited properties of Crow", Object.getPrototypeOf(Crow), '\n'); console.log("own property names of Crow ", Object.getOwnPropertyNames(Crow)); console.log("Parrots color is ", Parrots['color'], "and Jacot color is ", Jacot['color']); /* crochu, casserole, grimpeurs, gris, imitateur, bec, voix, pieds, hooked, pan, climbers, gray, mimic, beak, voice, feet, */

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.