Parasitäres Konstruktormuster
Im Allgemeinen kann das parasitäre Konstruktormuster verwendet werden, wenn keines der oben genannten Muster anwendbar ist. Die Grundidee dieses Musters besteht darin, eine Funktion zu erstellen, die einfach den Code kapselt, der das Objekt erstellt, und dann das neu erstellte Objekt zurückgibt. Oberflächlich betrachtet sieht diese Funktion jedoch wie ein typischer Konstruktor aus. Unten finden Sie ein Beispiel.
function Person(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function(){ alert(this.name); }; return o; } var friend = new Person("Nicholas", 29, "Software Engineer"); friend.sayName(); //"Nicholas"
In diesem Beispiel erstellt die Person-Funktion ein neues Objekt, initialisiert das Objekt mit den entsprechenden Eigenschaften und Methoden und gibt dann das Objekt zurück. Dieses Muster ist genau das gleiche wie das Factory-Muster, außer dass der neue Operator verwendet wird und die verwendete Wrapper-Funktion als Konstruktor bezeichnet wird. Wenn der Konstruktor keinen Wert zurückgibt, gibt er standardmäßig eine neue Objektinstanz zurück.
Sicheres Konstruktormuster
Das sogenannte sichere Objekt bezieht sich auf ein Objekt, das keine öffentlichen Eigenschaften hat und dessen Methoden nicht darauf verweisen. Stabile Objekte werden am besten in einigen sicheren Umgebungen verwendet (wo die Verwendung von this und new verboten ist) oder um zu verhindern, dass Daten durch andere Anwendungen (z. B. Mashup-Programme) geändert werden. Sichere Konstruktoren folgen einem ähnlichen Muster wie parasitäre Konstruktoren, es gibt jedoch zwei Unterschiede: Erstens referenziert die Instanzmethode des neu erstellten Objekts nicht darauf; zweitens wird der Konstruktor nicht mit dem neuen Operator aufgerufen. Entsprechend den Anforderungen eines stabilen Konstruktors kann der vorherige Personenkonstruktor wie folgt umgeschrieben werden.
function Person(name, age, job){ //创建要返回的对象 var o = new Object(); //可以在这里定义私有变量和函数 //添加方法 o.sayName = function(){ alert(name); }; //返回对象 return o; }
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Beispiele für parasitäre JavaScript-Konstruktormuster und sichere Konstruktormuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!