Maison >interface Web >js tutoriel >Explication détaillée d'exemples sur la façon de construire des objets personnalisés en javascript
Il existe deux manières de créer une construction d'objet avancée : en utilisant la construction de mot-clé "this" et en utilisant la construction de prototype de prototype. Par exemple :
//使用this关键字定义构造的上下文属性 function Girl() { this.name = "big pig"; this.age = 20; this.standing; this.bust; this.waist; this.hip; } //使用prototype function Girl(){} Girl.prototype.name = "big pig"; Girl.prototype.age = 20; Girl.prototype.standing; Girl.prototype.bust; Girl.prototype.waist; Girl.prototype.hip; alert(new Girl().name);
Les deux définitions de l'exemple ci-dessus sont essentiellement les mêmes. Elles définissent toutes les deux les informations d'attribut de l'objet "Girl". La différence entre « ceci » et « prototype » réside principalement dans l’ordre d’accès aux attributs. Par exemple :
function Test() { this.text = function() { alert("defined by this"); } } Test.prototype.test = function() { alert("defined by prototype"); } var _o = new Test(); _o.test();//输出“defined by this”
Lors de l'accès aux propriétés ou méthodes d'un objet, les règles de recherche dans la chaîne de prototypes seront suivies. Recherchez d'abord ses propres propriétés et méthodes statiques, puis recherchez les propriétés et méthodes accessibles du contexte de construction, et enfin recherchez la chaîne de prototypes de la construction.
Une autre différence entre les définitions de « ceci » et de « prototype » est que les attributs occupent des espaces différents. En utilisant le mot-clé "this", l'exemple initialise l'espace requis pour toutes les propriétés et méthodes contenues dans le constructeur pour chaque instance, et utilise la définition "prototype", car "prototype" est en fait une référence au parent, c'est juste un. copie des données, ce qui permet d'économiser des ressources d'initialisation et de stockage par rapport à "ceci".
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!