Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Стандартные встроенные объекты
  5. Object
  6. Object.prototype.constructor

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Object.prototype.constructor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

Сводка

Возвращает ссылку на функциюObject, создавшую прототип экземпляра. Обратите внимание, что значение этого свойства является ссылкой на саму функцию, а не строкой, содержащей имя функции. Для примитивных значений, вроде1,true или"test", значение доступно только для чтения.

Описание

Все объекты наследуют свойствоconstructor из своего прототипа:

js
var o = {};o.constructor === Object; // truevar a = [];a.constructor === Array; // truevar n = new Number(3);n.constructor === Number; // true

Примеры

Пример: отображение конструктора объекта

В следующем примере создаётся прототипTree и объект этого типаtheTree. Затем в примере отображается свойствоconstructor объектаtheTree.

js
function Tree(name) {  this.name = name;}var theTree = new Tree("Красное дерево");console.log("theTree.constructor равен " + theTree.constructor);

Вывод примера будет следующим:

js
theTree.constructor равен function Tree(name) {  this.name = name;}

Пример: изменение конструктора объекта

Следующий пример показывает, как изменить конструктор значений общих объектов. Не затрагиваются только значенияtrue,1 и"тест", поскольку они имеют родные конструкторы только для чтения. Этот пример показывает, что полагаться на свойствоconstructor объекта не всегда безопасно.

js
function Type() {}var types = [  new Array(),  [],  new Boolean(),  true, // останется неизменным  new Date(),  new Error(),  new Function(),  function () {},  Math,  new Number(),  1, // останется неизменным  new Object(),  {},  new RegExp(),  /(?:)/,  new String(),  "тест", // останется неизменным];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"));

Вывод примера будет следующим:

js
function Type() {},false,function Type() {},false,function Type() {},false,falsefunction Boolean() {    [native code]},false,truefunction Type() {},false,Mon Sep 01 2014 16:03:49 GMT+0600function Type() {},false,Errorfunction Type() {},false,function anonymous() {}function Type() {},false,function () {}function Type() {},false,[object Math]function Type() {},false,0function Number() {    [native code]},false,1function Type() {},false,[object Object]function Type() {},false,[object Object]function Type() {},false,/(?:)/function Type() {},false,/(?:)/function Type() {},false,function String() {    [native code]},false,тест

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-object.prototype.constructor

Совместимость с браузерами

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp