typeof object.constructor总是返回一个函数。真的吗?

时间:2009-09-22 13:41:48

标签: javascript

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);

所有三个日志语句都显示'功能'。

是否存在对象的构造函数不是“函数”的情况?

2 个答案:

答案 0 :(得分:6)

构造函数是javascript中的函数,按照定义。所以类型永远是“功能”。

请参阅:http://www.w3schools.com/jsref/jsref_constructor_math.asp

构造函数属性是对创建对象的函数的引用。

Mozilla documentation更清晰:

返回对创建实例原型的Object函数的引用。请注意,此属性的值是对函数本身的引用,而不是包含函数名称的字符串

答案 1 :(得分:0)

对象构造函数只是一个常规的JavaScript函数,因此它也很健壮(即:定义参数,调用其他函数等)。两者之间的区别在于通过new运算符

调用构造函数

Object Constructor and prototyping