Cada objeto tiene un prototipo de JavaScript. El prototipo es también un objeto.
Todos los objetos de JavaScript heredan sus propiedades y métodos de su prototipo.
Los prototipos de JavaScript
Todos los objetos JavaScript heredan las propiedades y métodos de su prototipo.
Los objetos creados usando un objeto literal o con new Object() , heredan de un prototipo llamado Object.prototype.
Los objetos creados con new Date() heredan el Date.prototype.
El Object.prototype está en la parte superior de la cadena de prototipo.
Todos los objetos JavaScript (Date, Array, RegExp, Function, ....) heredan de la Object.prototype .
La creación de un prototipo
La forma estándar para crear un prototipo de objeto es utilizar una función de objeto constructor:
Ejemplo
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Con una función constructora, se puede utilizar la new palabra clave para crear nuevos objetos del mismo prototipo:
Ejemplo
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Inténtalo tú mismo " La función del constructor es el prototipo de Person objetos.
Se considera una buena práctica función de nombre de constructor con una primera letra mayúscula.
Adición de propiedades y métodos de los objetos
A veces desea agregar nuevas propiedades (o métodos) a un objeto existente.
A veces desea agregar nuevas propiedades (o métodos) a todos los objetos existentes de un tipo dado.
A veces desea agregar nuevas propiedades (o métodos) para un prototipo de objeto.
Adición de una propiedad a un objeto
Adición de una nueva propiedad a un objeto existente es fácil:
La propiedad se añadirá a myFather . No myMother . No a otros objetos persona.
Adición de un método de un objeto
Adición de un nuevo método para un objeto existente también es fácil:
Ejemplo
myFather.name = function () {
return this.firstName + " " + this.lastName;
};
Inténtalo tú mismo " El método se añadirá a myFather . No myMother .
Adición de propiedades a un Prototipo
No se puede agregar una nueva propiedad a un prototipo de la misma forma que se agrega una nueva propiedad a un objeto existente, debido a que el prototipo no es un objeto existente.
Para añadir una nueva propiedad a un constructor, debe agregarlo a la función constructora:
Ejemplo
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
Inténtalo tú mismo " las propiedades de prototipo pueden tener valores de prototipo (valores por defecto).
Adición de métodos a un prototipo
Su función constructora también puede definir métodos:
Ejemplo
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;};
}
Inténtalo tú mismo " Usando el prototype de la propiedad
El JavaScript prototype la propiedad le permite añadir nuevas propiedades a un prototipo existente:
Ejemplo
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Inténtalo tú mismo " La propiedad prototipo de JavaScript también permite añadir nuevos métodos a un prototipo existente:
Ejemplo
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;
};
Inténtalo tú mismo " Sólo modificar sus propios prototipos. Nunca modifique los prototipos de objetos de JavaScript estándar.