Prototipo dell'oggetto JavaScript

Tutti gli oggetti JavaScript ereditano proprietà e metodi dai prototipi.

Nel capitolo precedente, abbiamo imparato come utilizzareCostruttore di oggetti:

Esempio

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

Provatelo personalmente

Abbiamo riconosciuto che si desideraImpossibileAggiungere nuove proprietà al costruttore di oggetti esistenti:

Esempio

Person.nationality = "English";

Provatelo personalmente

Per aggiungere una nuova proprietà al costruttore, è necessario aggiungerla alla funzione costruttore:

Esempio

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

Provatelo personalmente

Ereditarietà prototipale

Tutti gli oggetti JavaScript ereditano proprietà e metodi dai prototipi.

L'oggetto Date eredita da Date.prototype. L'oggetto Array eredita da Array.prototype. L'oggetto Person eredita da Person.prototype.

Object.prototype si trova alla fine della catena di ereditarietà prototipale:

L'oggetto Date, l'oggetto Array e l'oggetto Person ereditano da Object.prototype.

Aggiungere proprietà e metodi agli oggetti

A volte, si desidera aggiungere nuove proprietà (o metodi) a tutti gli oggetti esistenti di un tipo dato.

A volte, potresti voler aggiungere nuovi attributi (o metodi) ai costruttori di oggetti.

Uso Prototype Attributi

L'attributo prototype di JavaScript permette anche di aggiungere nuovi attributi agli costruttori di oggetti:

Esempio

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

Provatelo personalmente

L'attributo prototype di JavaScript permette anche di aggiungere nuovi metodi agli costruttori di oggetti:

Esempio

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;
};

Provatelo personalmente

Modificare soloVoi stessiL'原型. Non modificare mai l'原型 degli oggetti JavaScript standard.