2009-09-22 1 views
3
function Person(name){ 
this.name = name; 
} 

p = new Person('John'); 
log(typeof p.constructor); 

var f = {}; 
log(typeof f.constructor); 

var f2 = new Object(); 
log(typeof f2.constructor); 

Все три оператора журнала показывают 'функцию'.Тип объекта object.constructor всегда возвращает функцию. Это правда?

Есть ли случай, когда конструктор объекта НЕ будет «функцией»?

ответ

6

Конструктор - это функция в javascript, по определению. Таким образом, тип всегда будет «функцией».

См: http://www.w3schools.com/jsref/jsref_constructor_math.asp

«Свойства конструктора является ссылкой на функцию, которая создала объект»

Mozilla documentation еще яснее:

Возвращает ссылку на объект которая создала прототип экземпляра. Обратите внимание, что значение этого свойства является ссылкой на саму функцию, а не на строку, содержащую имя функции.

0

Конструктор объектов - это просто обычная функция JavaScript, поэтому она такая же надежная (то есть: определение параметров, вызов других функции и т. д.). Различие между ними состоит в том, что функция вызывается конструктор с помощью нового оператора

Читать

Object Constructor and prototyping

Смежные вопросы