Este articulo necesita una revisión técnica. Cómo puedes ayudar.
Este articulo necesita una revisión editorial. Cómo puedes ayudar.
Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.
Resumen
La propiedad Object.prototype
representa al objeto prototipo de Object
.
Atributos de la propiedad Object.prototype |
|
---|---|
Sobrescribir | No |
Numerable | No |
Configurable | No |
Descripción
Todos los objetos en JavaScript provienen de Object
; todos los objetos heredan métodos y propiedades de Object.prototype
, aunque pueden ser sobrecargados (excepto un Object
con una propiedad null
, p.e. Object.create(null)
). Por ejemplo, otros prototipos de los constructores sobrecargan la propiedad del constructor
y proporcionan su propio método toString()
. Los cambios hechos al objeto prototipo Object
se propagan a todos los objetos a menos que las propiedades y métodos sujetos a dichos cambios sean sobrecargados aún más a lo largo de la cadena del prototipo.
Propiedades
Object.prototype.constructor
- Especifica la función que crea el prototipo de un objeto.
Object.prototype.__proto__
- Apunta al objeto que se usó como prototipo cuando fue instanciado.
Object.prototype.__noSuchMethod__
- Permite a una función ser definida que sera ejecutada cuando un miembro del objeto es llamado como un metodo.
Object.prototype.__count__
- Se utiliza para devolver el número de propiedades enumerables directamente en un objeto definido por el usuario, pero que ha sido eliminado.
Object.prototype.__parent__
Apunta al contexto de un objeto. Ha sido borrado.
Métodos
Object.prototype.__defineGetter__()
- Asocia una función con una propiedad que, cuando se accede a ella, ejecuta esa función y devuelve su valor de retorno.
Object.prototype.__defineSetter__()
- Asocia una función con una propiedad que al establecerse ejecuta esa función que modifica la propiedad.
Object.prototype.__lookupGetter__()
- Devuelve la función asociada con la propiedad indicada por el método
__defineGetter__
. Object.prototype.__lookupSetter__()
- Devuelve la función asociada con la propiedad indicada en el método
__defineSetter__
. Object.prototype.hasOwnProperty()
- Devuelve un valor lógico (boolean) que indica si el objeto contiene la propiedad indicada como una propiedad directa de ese objeto y no heredada por la cadena de prototipo.
Object.prototype.isPrototypeOf()
- Devuelve una indicación booleana cuando el objeto especificado está en la cadena de prototipos del objeto sobre el cuál éste método es llamado.
Object.prototype.propertyIsEnumerable()
- Devuelve un valor lógico (boolean) indicando si el atributo interno DontEnum de ECMAScript está establecido.
Object.prototype.toSource()
- Devuelve una cadena con el fuente de un literal de objeto que representa el objeto desde el que este método es llamado; se puede usar este valor para crear un nuevo objeto.
Object.prototype.toLocaleString()
- Llama a
toString()
. Object.prototype.toString()
- Devuelve la cadena de texto (string) que representa al objeto.
Object.prototype.unwatch()
- Remueve un punto de mira de una propiedad del objeto.
Object.prototype.valueOf()
- Devuelve el valor primitivo del objeto indicado.
Object.prototype.watch()
- Agrega un punto de mira a una propiedad del objeto.
Object.prototype.eval()
Se utiliza para evaluar una cadena de código JavaScript en el contexto del objeto especificado, pero que ha sido removido.
Ejemplos
Desde que Javascript no tiene objetos de sub-clases, prototype es una forma útil de hacer un objeto de "clase base" de ciertas funciones que actúan como objetos. Por ejemplo:
var Person = function() { this.canTalk = true; this.greet = function() { if (this.canTalk) { console.log("Hola, Soy " + this.name); } }; }; var Employee = function(name, title) { this.name = name; this.title = title; this.greet = function() { if (this.canTalk) { console.log("Hola, Soy " + this.name + ", el " + this.title); } }; }; Employee.prototype = new Person(); var Customer = function(name) { this.name = name; }; Customer.prototype = new Person(); var Mime = function(name) { this.name = name; this.canTalk = false; }; Mime.prototype = new Person(); var bob = new Employee('Bob','Constructor'); var joe = new Customer('Joe'); var rg = new Employee('Red Green','Manitas'); var mike = new Customer('Mike'); var mime = new Mime('Mime'); bob.greet(); joe.greet(); rg.greet(); mike.greet(); mime.greet();
Este código devolverá:
Hola, soy Bob, el Constructor
Hola, soy Joe
Hola, soy Red Green, el Manitas
Hola, soy Mike
Especificaciones
Especificación | Estado | Observación |
---|---|---|
ECMAScript 1a Edición. Implementado en JavaScript 1.0 | Standard | Definición inicial. |
ECMAScript 5.1 (ECMA-262) The definition of 'Object.prototype' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Object.prototype' in that specification. |
Standard |
Compatibilidad con navegadores
Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Soporte básico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Característica | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Soporte básico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |