Ultimele tutoriale de dezvoltare web
 

JavaScript Prototypes de obiecte


Fiecare obiect JavaScript are un prototip. Prototipul este, de asemenea, un obiect.

Toate obiectele JavaScript moștenesc proprietățile și metodele lor de prototipul lor.


Prototipuri JavaScript

Toate obiectele JavaScript moștenesc proprietățile și metodele de prototipul lor.

Obiectele create folosind un obiect literal, sau cu new Object() , moștenesc de la un prototip numit Object.prototype.

Obiectele create cu new Date() moșteni Date.prototype.

Object.prototype este pe partea de sus a lanțului de prototip.

Toate obiectele JavaScript (Date, Array, RegExp, Function, ....) moștenesc de la Object.prototype .


Crearea unui prototip

Modul standard de a crea un prototip obiect este de a utiliza o funcție de obiect constructor:

Exemplu

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}

Cu o funcție de constructor, puteți utiliza new cuvânt cheie pentru a crea noi obiecte din același prototip:

Exemplu

var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Încearcă - l singur »

Funcția de constructor este prototipul pentru Person obiecte.
Este considerată o bună practică de a funcției nume constructor, cu o primă literă mare.


Adăugarea Proprietăți și metode pentru obiecte

Uneori doriți să adăugați proprietăți noi (or methods) la un obiect existent.

Uneori doriți să adăugați proprietăți noi (or methods) pentru toate obiectele existente ale unui anumit tip.

Uneori doriți să adăugați proprietăți noi (or methods) la un prototip obiect.


Adăugarea unei proprietăți la un obiect

Adăugarea unei noi proprietăți la un obiect existent este simplu:

Exemplu

myFather.nationality = "English";
Încearcă - l singur »

Proprietatea va fi adăugat la myFather . Să nu myMother . Să nu orice alte obiecte persoană.


Adăugarea unei metode a unui obiect

Adăugarea unei noi metode de la un obiect existent este, de asemenea, ușor:

Exemplu

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};
Încearcă - l singur »

Metoda va fi adăugată la myFather . Să nu myMother .


Adăugarea de proprietăți la un prototip

Nu puteți adăuga o nouă proprietate la un prototip același mod ca și adăugați o nouă proprietate într-un obiect existent, deoarece prototipul nu este un obiect existent.

Exemplu

Person.nationality = "English";
Încearcă - l singur »

Pentru a adăuga o nouă proprietate la un constructor, trebuie să-l adăugați la funcția de constructor:

Exemplu

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English"
}
Încearcă - l singur »

Proprietățile prototip pot avea valori prototip (default values) .


Adăugarea Metode la un prototip

Funcția dumneavoastră constructor poate defini, de asemenea, metode:

Exemplu

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;};
}
Încearcă - l singur »

Utilizarea prototype de proprietate

JavaScript , prototype proprietate vă permite să adăugați proprietăți noi la un prototip existent:

Exemplu

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Încearcă - l singur »

Proprietatea JavaScript prototip, de asemenea, vă permite să adăugați noi metode la un prototip existent:

Exemplu

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;
};
Încearcă - l singur »

Modifica numai propriile prototipuri. Nu modificați niciodată prototipuri de obiecte JavaScript standard.