Heim  >  Artikel  >  Web-Frontend  >  Einfache Analyse von objektorientiertem JavaScript und prototyp_jquery

Einfache Analyse von objektorientiertem JavaScript und prototyp_jquery

WBOY
WBOYOriginal
2016-05-16 15:57:571238Durchsuche

Der Hauptinhalt dieses Artikels stammt aus den Kapiteln „Fortgeschrittene JavaScript-Programmierung“, „Objektorientiert“ und „Prototyp“:

1. Werksmodus

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 durch das Factory-Muster erstellt wurden, lösen das Problem der wiederholten Instanziierung, aber das Objekterkennungsproblem kann nicht gelöst werden (alle Objekte sind Objekte). Um das Objekterkennungsproblem zu lösen, verwenden wir daher 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()); 

Dies im Konstruktor: stellt den Verweis auf das aktuelle Bereichsobjekt dar. Wenn es sich im globalen Bereich befindet, stellt es 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 Objektidentifizierung. Wenn wir die Unterschiede zur Factory-Methode vergleichen, können wir Folgendes sehen:

1. Die Konstruktormethode erstellt kein Objekt (new Object())

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

3. Keine Rückgabeerklärung;

4. Beim Erstellen mit einem Konstruktor müssen Sie jedoch den neuen Operator

verwenden

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

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