Heim  >  Artikel  >  Web-Frontend  >  Wie verwende ich Factory-Muster und Konstruktor, um Objekte in JavaScript zu erstellen?

Wie verwende ich Factory-Muster und Konstruktor, um Objekte in JavaScript zu erstellen?

伊谢尔伦
伊谢尔伦Original
2017-07-27 17:18:082382Durchsuche

Besprechen Sie verschiedene objektorientierte Konzepte: 1. Alles ist ein Objekt, 2. Objekte haben Kapselungs- und Vererbungsmerkmale, 3. Objekte kommunizieren miteinander über Nachrichten und jedes hat versteckte Informationen.

1. Factory-Muster

ECMAScript kann Objekte über das Factory-Muster erstellen:


//工厂模式
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

Objekte, die über das Factory-Muster erstellt wurden, Das Problem der wiederholten Instanziierung ist gelöst, aber das Objekterkennungsproblem kann nicht gelöst werden (alle Objekte sind Objekte). Um das Objekterkennungsproblem zu lösen, verwenden wir den folgenden Konstruktor.

2. Konstruktor


//构造函数创建
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());

Im Konstruktor stellt dies die Referenz des aktuellen Bereichsobjekts dar. Wenn es sich im globalen Bereich befindet, ist dies stellt das Fensterobjekt dar. Wenn es sich im Konstruktorkörper befindet, stellt es das vom aktuellen Konstruktor deklarierte Objekt dar.

Die Konstruktormethode löst das Problem der wiederholten Instanziierung und das Problem der Objektidentifizierung. Wir können Folgendes erkennen:

1. Die Konstruktormethode erstellt keine Objekte explizit (neues Objekt());

2. Weisen Sie diesem direkt Attribut- und Methodenwerte zu;

3 Der zu erstellende Konstruktor muss den neuen Operator verwenden;

Das obige ist der detaillierte Inhalt vonWie verwende ich Factory-Muster und Konstruktor, um Objekte in JavaScript zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn