Najnowsze tutoriale tworzenie stron internetowych
 

JavaScript Prototypy obiektu


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:

Przykład

myFather.nationality = "English";
Spróbuj sam "

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:

Przykład

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};
Spróbuj sam "

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.

Przykład

Person.nationality = "English";
Spróbuj sam "

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.