Resumen
Retorna una referencia a la función del Object
que creó el prototipo de la instancia. Note que el valor de esta propiedad es una referencia a la función misma, no a un string conteniendo el nombre de la función. El valor es solo de lectura para valores de primitivas tales como 1, true y 'test'.
Descripción
Todos los objetos heredan una propiedad constructor
la cual proviene de su prototipo
:
var o = {}; o.constructor === Object; // true var a = []; a.constructor === Array; // true var n = new Number(3); n.constructor === Number; // true
Ejemplos
Ejemplo: Mostrando el constructor de un objeto.
El siguiente ejemplo creo un prototipo, Tree
, y un objeto de este tipo, theTree
. El ejemplo muestra entonces la propiedad constructor
para el objeto theTree
.
function Tree (name) { this.name = name; } var theTree = new Tree( "Redwood" ); console.log( "theTree.constructor is " + theTree.constructor );
Este ejemplo muestra la siguiente salida:
theTree.constructor is function Tree (name) { this.name = name; }
Ejemplo: Cambiando el constructor de un objeto.
El siguiente ejemplo demuestra como modificar el valor del constructor de objetos genéricos. Solo true
, 1
y "test"
no serán afectados ya que ellos tienen constructores nativos de solo lectura. Este ejemplo demuestra que no siempre es seguro confiar en la propiedad constructor de un objeto.
function Type () {} var types = [ new Array(), [], new Boolean(), true, // no cambia new Date(), new Error(), new Function(), function () {}, Math, new Number(), 1, // no cambia new Object(), {}, new RegExp(), /(?:)/, new String(), "test" // no cambia ]; for( var i = 0; i < types.length; i++ ) { types[i].constructor = Type; types[i] = [ types[i].constructor, types[i] instanceof Type, types[i].toString() ]; } console.log( types.join( "\n" ) );
Especificaciones
Especificaciones | Estatus | Comentario |
---|---|---|
ECMAScript 1ra. Edición. Implementado en JavaScript 1.1 | Estandar. | Definición inicial. |
ECMAScript 5.1 (ECMA-262) The definition of 'Objectprototype.constructor' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Object.prototype.constructor' 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) |