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.