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 的一个引用

posted @ 2018-11-14 21:03  xiajie9  阅读(287)  评论(0编辑  收藏  举报