Le contenu principal de cet article provient des chapitres sur la programmation avancée JavaScript, l'orientation objet et les prototypes :
1. Mode usine
ECMAScript peut créer des objets via le modèle d'usine :
//工厂模式 function createObject(name, age) { var obj = new Object(); //创建对象 obj.name = name; //添加属性 obj.age = age; obj.run = function () { //添加方法 return this.name + this.age + '运行中...'; }; return obj; //返回对象引用 }; var obj1 = createObject('Lee', 100); //创建第一个对象 var obj2 = createObject('Jack', 200); //创建第二个对象 //alert(obj1.run()); //打印第一个对象实例的run()方法 //alert(obj2.run()); //打印第二个对象实例的run()方法 //alert(typeof obj1); //alert(typeof obj2); alert(obj1 instanceof Object); //true alert(obj2 instanceof Object); //true
Les objets créés via le modèle d'usine résolvent le problème de l'instanciation répétée, mais le problème de reconnaissance d'objets ne peut pas être résolu (tous les objets sont des objets), donc pour résoudre le problème de reconnaissance d'objets, nous utilisons le constructeur suivant.
2. Constructeur
//构造函数创建 function Person(name,age){ //所有构造函数对象都是Object this.name=name; this.age=age; this.run=function(){ return this.name+this.age+"ing..."; }; }; var person1=new Person('zhu1',100); var person2=new Person('zhu2',200); alert(person1.run()); alert(person2.run()); alert(person1 instanceof Object); //ture alert(typeof person2); //Person alert(person2 instanceof Person); // true var person3=new Object(); Person.call(person3,'zhu3',300);//对象冒充,person3是Object类型,冒充Person类型 alert(person3.run());
Ceci dans le constructeur : représente la référence à l'objet scope actuel. S'il est dans la portée globale, cela représente l'objet window S'il est dans le corps du constructeur, il représente l'objet déclaré par le constructeur actuel.
La méthode constructeur résout le problème de l'instanciation répétée et de l'identification des objets. En comparant les différences avec la méthode fabrique, nous pouvons voir :
1. La méthode constructeur ne crée pas explicitement un objet (new Object()) ;
2. Attribuez directement des valeurs d'attribut et de méthode à cela ;3. Aucune déclaration de retour ;
4. Cependant, lors de la création à l'aide d'un constructeur, vous devez utiliser l'opérateur new
;
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.