Object Constructor
语法
Object.constructor
返回值
对象的constructor属性返回创建该对象的函数的引用。
// 字符串:String() var str = "张三"; alert(str.constructor); // function String() alert(str.constructor === String); // 数组:Array() var arr = [1, 2, 3]; alert(arr.constructor); // function Array() alert(arr.constructor === Array); // 数字:Number() var num = 5; alert(num.constructor); // function Number() alert(num.constructor === Number); // 自定义对象:Person() var p = new Person(); alert(p.constructor); // function Person() alert(p.constructor === Person); // JSON对象:Object() var o = { "name" : "张三"}; alert(o.constructor); // function Object() alert(o.constructor === Object); // 自定义函数:Function() function foo(){ alert("CodePlayer"); } alert(foo.constructor); // function Function() alert(foo.constructor === Function); // 函数的原型:bar() function bar(){ alert("CodePlayer"); } alert(bar.prototype.constructor); // function bar() alert(bar.prototype.constructor === bar);
// 自定义对象:Person()
function Person(){
this
.name =
"CodePlayer"
;
}
var
p =
new
Person();
alert(p.constructor);
// function Person(){ this.name = "CodePlayer"; }
alert(p.constructor === Person);
// true
// JSON对象:Object()
var
o = {
"name"
:
"张三"
};
alert(o.constructor);
// function Object() { [native code] }
alert(o.constructor === Object);
// true
// 自定义函数:Function()
function foo(){
alert(
"CodePlayer"
);
}
alert(foo.constructor);
// function Function() { [native code] }
alert(foo.constructor === Function);
// true
// 函数的原型:bar()
function bar(){
alert(
"CodePlayer"
);
}
alert(bar.prototype.constructor);
// function bar(){ alert("CodePlayer"); }
alert(bar.prototype.constructor === bar);
// true
所有对象都会从它的原型上继承一个 constructor
属性
JavaScript 内部会执行:
1.为该函数添加一个原形(即 prototype)属性
2.为 prototype 对象额外添加一个 constructor 属性,并且该属性保存指向函数F 的一个引用