Object.prototype.constructor
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Resumen
Retorna una referencia a la función delObject
que creó el objeto 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 sólo de lectura para valores primitivos tales como 1, true y 'test'.
Descripción
Todos los objetos tienen una propiedadconstructor.
Los objetos creados sin explicitar el uso de una función (como son los objetos y las cadenas literales) tendrán una propiedad deconstructor
que apunta al tipo de constructor del Objeto Fundamento para ese objeto.
var o = {};o.constructor === Object; // truevar a = [];a.constructor === Array; // truevar n = new Number(3);n.constructor === Number; // true
Ejemplos
Ejemplo: Mostrando el constructor de un objeto
El siguiente ejemplo crea un prototipo,Tree
, y un objeto de este tipo,theTree
. El ejemplo muestra entonces la propiedadconstructor
para el objetotheTree
.
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. Solotrue
,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
Specification |
---|
ECMAScript® 2026 Language Specification # sec-object.prototype.constructor |