HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
View in English Always switch to English
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", значение доступно только для чтения.
Object
1
true
"test"
Все объекты наследуют свойство constructor из своего прототипа:
constructor
var o = {}; o.constructor === Object; // true var a = []; a.constructor === Array; // true var n = new Number(3); n.constructor === Number; // true
В следующем примере создаётся прототип Tree и объект этого типа theTree. Затем в примере отображается свойство constructor объекта theTree.
Tree
theTree
function Tree(name) { this.name = name; } var theTree = new Tree("Красное дерево"); console.log("theTree.constructor равен " + theTree.constructor);
Вывод примера будет следующим:
theTree.constructor равен function Tree(name) { this.name = name; }
Следующий пример показывает, как изменить конструктор значений общих объектов. Не затрагиваются только значения true, 1 и "тест", поскольку они имеют родные конструкторы только для чтения. Этот пример показывает, что полагаться на свойство constructor объекта не всегда безопасно.
"тест"
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"));
function Type() {},false, function Type() {},false, function Type() {},false,false function Boolean() { [native code] },false,true function Type() {},false,Mon Sep 01 2014 16:03:49 GMT+0600 function Type() {},false,Error function Type() {},false,function anonymous() { } function Type() {},false,function () {} function Type() {},false,[object Math] function Type() {},false,0 function Number() { [native code] },false,1 function Type() {},false,[object Object] function Type() {},false,[object Object] function Type() {},false,/(?:)/ function Type() {},false,/(?:)/ function Type() {},false, function String() { [native code] },false,тест
Enable JavaScript to view this browser compatibility table.