Heim >Web-Frontend >js-Tutorial >Ausführliche Erläuterung der Verwendungsbeispiele für Javascript-Prototypmuster_Javascript-Kenntnisse

Ausführliche Erläuterung der Verwendungsbeispiele für Javascript-Prototypmuster_Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 15:56:381228Durchsuche

Die Beispiele in diesem Artikel beschreiben die Verwendung des JavaScript-Prototypmodus. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Im Allgemeinen wissen Sie, warum Prototypmuster benötigt werden, nachdem Sie die Nachteile von Fabrikmustern und Konstruktormustern verstanden haben

Definition des Prototypmusters i: Jede Funktion verfügt über ein Prototypattribut, bei dem es sich um ein Objekt handelt, dessen Zweck darin besteht, Eigenschaften und Methoden zu enthalten, die von allen Instanzen eines bestimmten Typs gemeinsam genutzt werden können. Wenn beispielsweise in der Methode sayInformation() im Konstruktormodell zwei Instanzen deklariert werden, muss die Methode sayInformation zweimal erstellt werden, es ist jedoch nicht erforderlich, sie zweimal zu deklarieren. Aus diesem Grund erscheint das Prototypmuster (Nima, diese Blogs). Im Internet gibt es alle: Ist es Unsinn oder ist es beim Lesen eines Buches leicht zu verstehen? Nachdem sayInformation () als Prototypmodus deklariert wurde, wird die Instanz gemeinsam genutzt und es ist nicht erforderlich, sie zweimal zu deklarieren

function Person(){}
Person.prototype.name="jack";
Person.prototype.age=10;
Person.prototype.sayInformation=function()
{
  console.log("my name is"+this.name+" age is"+this.age);
}
var person1 = new Person();
person1.sayInformation();
console.info(person1.name);
//来自原型的属性name
person1.name="Greg";
//修改实例的name属性
console.info(person1.name);
//来自实例的属性name
delete person1.name ;
//来自实例的属性,这里删除的是实例的属性,但是原型的属性依然存在
console.info(person1.name);
//来自原型的属性name
var person2 = new Person();
person2.sayInformation();
console.info(person1.hasOwnProperty("name"));
//hasOwnProperty检查属性是属于实例还是原型中,如果是实例中就返回true
console.info(person1.name==person2.name);
console.info(person1.sayInformation==person2.sayInformation);
console.info(person1.constructor);
//指向person1的构造函数
//原型更加简便的写法
function Person2(){}
Person2.prototype={
  name:"jack",
  age:29,
  sayInformationfunction:function()
    {
      console.log("my name is"+this.name+" age is"+this.age);
    }
}

Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

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