Każdy obiekt JavaScript jest prototyp. Prototyp jest obiektem.
Wszystkie obiekty JavaScript dziedziczą swoje właściwości i metod z ich prototypu.
Prototypy JavaScript
Wszystkie obiekty JavaScript dziedziczą właściwości i metod z ich prototypu.
Przedmioty tworzone przy użyciu obiekt dosłowne, lub new Object() , dziedziczą z prototypem o nazwie Object.prototype.
Obiekty utworzone za pomocą new Date() dziedziczą Date.prototype.
Object.prototype jest w górnej części łańcucha prototypu.
Wszystkie obiekty JavaScript (Date, Array, RegExp, Function, ....) dziedziczą z Object.prototype .
Tworzenie prototypu
Standardowy sposób stworzyć prototyp obiektu jest użycie funkcji konstruktora obiektu:
Przykład
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Dzięki funkcji konstruktora, można skorzystać z new słowa kluczowego do tworzenia nowych obiektów z tego samego prototypu:
Przykład
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Spróbuj sam " Funkcja konstruktora jest prototypem dla Person przedmiotami.
Uważa się, dobrą praktyką jest nazwa funkcji konstruktora z wielkich liter pierwszej litery.
Dodawanie właściwości i metody do obiektów
Czasami chcesz dodać nowe właściwości (lub metody) do istniejącego obiektu.
Czasami chcesz dodać nowe właściwości (lub metody) do wszystkich istniejących obiektów danego typu.
Czasami chcesz dodać nowe właściwości (lub metody) do prototypu obiektu.
Dodawanie obiekt do obiektu
Dodanie nowej nieruchomości do istniejącego obiektu jest łatwe:
Obiekt zostanie dodany do myFather . Nie myMother . Nie każda inna osoba obiektów.
Dodanie metody do obiektu
Dodanie nowej metody do istniejącego obiektu jest również proste:
Sposób ten dodano do myFather . Nie myMother .
Dodawanie właściwości do Prototype
Nie możesz dodać nowy obiekt do prototypu w ten sam sposób, jak dodać nowy obiekt do istniejącego obiektu, ponieważ prototyp nie jest istniejący obiekt.
Aby dodać nowy obiekt do konstruktora, należy go dodać do funkcji konstruktora:
Przykład
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
Spróbuj sam " Prototypowe właściwości mogą mieć wartości prototypowych (domyślne).
Dodawanie metod, aby prototyp
Twoja funkcja konstruktora może również zdefiniować metody:
Przykład
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
Spróbuj sam " Korzystanie z prototype obiekt
JavaScript prototype właściwość pozwala na dodanie nowych właściwości do istniejącego prototypu:
Przykład
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Spróbuj sam " Obiekt prototypowy JavaScript pozwala również na dodawanie nowych metod do istniejącego prototypu:
Przykład
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
Spróbuj sam " Modyfikować tylko swoje prototypy. Nigdy zmodyfikować prototypy standardowych obiektów JavaScript.