prototyp a konstruktér

Nejprve se podívejme na některé koncepty v javascriptu.
Objekt – neprimitivní datový typ, který obsahuje více hodnot z hlediska vlastností a metod.

function Person(){
  this.name = 'parent';
  this.age = 1;
  sayHi: function() {
      console.log('sayHi')
      }
}
console.log(Person)


console.log(Person.prototype)

Vlastnost prototype můžete použít pro přístup k funkci konstruktoru a proto vlastnost.

prototyp - každá funkce a objekt má ve výchozím nastavení vlastnost prototyp
konstruktor - funkce konstruktoru je stejná jako v jiném jazyce, který se používá pro vytváření a konkretizaci objektu. Existují dvě konvence:

  • jméno je první písmeno velké
  • použijte s novým operátorem jako výchozí

Vztah mezi prototypem a konstruktorem je:

Při vytváření nové instance

const p1 = new Person();
console.log(p1)


Vztah mezi objektovou osobou a instancí je:

Pochopením rozdílu mezi prototypem a proto , a konstruktor, pojďme se hlouběji podívat na některé metody kontroly typu, které používáme, a na to, jak s nimi prototyp pomáhá.

  • konstruktor

Z výše uvedeného diagramu vztahů si všimnete, že konstruktor ve skutečnosti odkazuje zpět na objekt v řetězci prototypu, jehož vlastností je prototyp. Lze jej použít k nalezení funkce konstruktoru při vytváření instance.

const arr = [];
console.log(arr.constructor)

  • případ
console.log(arr instanceof Array) // true
console.log(arr instanceof Object) // true


Z řetězení můžete vidět, že instanceof používá řetězení prototypu, aby se vrátilo celou cestu zpět, aby zjistilo přítomnost contructor.prototype, proto je instancí Array i Object.

Doufám, že vám tento článek pomůže porozumět prototypu v javascriptu.