Les exemples de cet article décrivent l'utilisation du mode prototype JavaScript. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :
Généralement, après avoir compris les inconvénients du modèle d'usine et du modèle de constructeur, vous saurez pourquoi un modèle de prototype est nécessaire
Définition du modèle de prototype i : chaque fonction possède un attribut de prototype, qui est un objet dont le but est de contenir des propriétés et des méthodes pouvant être partagées par toutes les instances d'un type spécifique. Par exemple, dans la méthode sayInformation() du modèle constructeur, si deux instances sont déclarées, la méthode sayInformation doit être construite deux fois, mais il n'est pas nécessaire de la déclarer deux fois. C'est pourquoi le modèle prototype apparaît (Nima, ces blogs. sur Internet, est-ce absurde ou est-ce facile à comprendre en lisant un livre), une fois que sayInformation() est déclaré en mode prototype, l'instance est partagée et il n'est pas nécessaire de la déclarer deux fois
function Person(){} Person.prototype.name="jack"; Person.prototype.age=10; Person.prototype.sayInformation=function() { console.log("my name is"+this.name+" age is"+this.age); } var person1 = new Person(); person1.sayInformation(); console.info(person1.name); //来自原型的属性name person1.name="Greg"; //修改实例的name属性 console.info(person1.name); //来自实例的属性name delete person1.name ; //来自实例的属性,这里删除的是实例的属性,但是原型的属性依然存在 console.info(person1.name); //来自原型的属性name var person2 = new Person(); person2.sayInformation(); console.info(person1.hasOwnProperty("name")); //hasOwnProperty检查属性是属于实例还是原型中,如果是实例中就返回true console.info(person1.name==person2.name); console.info(person1.sayInformation==person2.sayInformation); console.info(person1.constructor); //指向person1的构造函数 //原型更加简便的写法 function Person2(){} Person2.prototype={ name:"jack", age:29, sayInformationfunction:function() { console.log("my name is"+this.name+" age is"+this.age); } }
J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.