Prototipo del objeto JavaScript

Todos los objetos JavaScript heredan propiedades y métodos de los prototipos.

En el capítulo anterior, aprendimos cómo usarConstructor de objetos:

Instancia

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");

Pruebe por su propia cuenta

Hemos reconocido queNo se puedeAgregar nuevas propiedades a los constructores de objetos existentes:

Instancia

Person.nationality = "English";

Pruebe por su propia cuenta

Si necesitas agregar una nueva propiedad a un constructor, debes agregarla a la función del constructor:

Instancia

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

Pruebe por su propia cuenta

Herencia de prototipos

Todos los objetos JavaScript heredan propiedades y métodos de los prototipos.

Los objetos de fecha heredan de Date.prototype. Los objetos de array heredan de Array.prototype. Los objetos Person heredan de Person.prototype.

Object.prototype está en la cima de la cadena de herencia de prototipos:

Los objetos de fecha, los objetos de array y los objetos Person heredan de Object.prototype.

Agregar propiedades y métodos a un objeto

A veces, te gustaría agregar nuevas propiedades (o métodos) a todos los objetos existentes de un tipo dado.

A veces, desea agregar nuevas propiedades (o métodos) a los constructores de objetos.

Uso Prototype Propiedades

La propiedad prototype de JavaScript permite agregar nuevas propiedades a los constructores de objetos:

Instancia

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

Pruebe por su propia cuenta

La propiedad prototype de JavaScript también permite agregar nuevos métodos a los constructores de objetos:

Instancia

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

Pruebe por su propia cuenta

Por favor, modifique soloUsted mismo原型. Nunca modifique el prototipo de los objetos JavaScript estándar.