Maison > interface Web > js tutoriel > Comment utiliser le modèle d'usine et le constructeur pour créer des objets en JavaScript ?

Comment utiliser le modèle d'usine et le constructeur pour créer des objets en JavaScript ?

伊谢尔伦
Libérer: 2017-07-27 17:18:08
original
2403 Les gens l'ont consulté

Discutez de plusieurs concepts en mode orienté objet : 1. Tout est un objet, 2. Les objets ont des caractéristiques d'encapsulation et d'héritage, 3. Les objets communiquent entre eux à l'aide de messages, et chacun cache des informations.

1. Modèle d'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
Copier après la connexion

Objets créés via le modèle d'usine, Le problème de l'instanciation répétée est résolu, 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());
Copier après la connexion

Dans le constructeur this : représente la référence de l'objet de portée actuel. S'il est dans la portée globale, ceci. représente l'objet window. S'il se trouve 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 le problème 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 d'objets explicitement. (new Object());

2. Attribuez directement des valeurs de propriété et de méthode à ceci ;

3 Aucune instruction de retour ;

4. pour créer Vous devez utiliser le nouvel opérateur ;

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal