JS中的constructor 和 prototype

时间:2023-02-02 18:38:10

object.constructor :对象的constructor 属性引用了该对象的构造函数。

//例如,用Array()构造函数创建了一个数组,那么a.constructor 引用的就是Array:
a = new Array(1,2,3);//创建一个对象
a.constructor == Array //true

constructor 属性常用来判断未知对象的类型。

1:给了一个未知的值,就可以用typeof运算符来判断它是原始的值还是对象,

2:如果是对象,就可以用constructor属性来判断对象类型

//例如,下边的函数用来判断一个给定的值是不是数组
function isArray(x){
return ((typeof x =="object") && (x.constructor ==Array));
}

--------------------------------------------constructor 和 prototype 的区别-------------------------------------------------------------------------

 function Person(name){
this.name = name;
this.showMe = function(){
alert(this.name);
}
}
var one = new Person("tommy");
one.showMe();// tommy

按照javascript的说法,function定义的这个Person就是一个Object,而且还是一个很特殊的对象,这个使用function定义的对象和使用new操作符生成的对象有一个重要区别。

Function定义的对象有一个prototype属性,使用new生成的对象没有prototype属性。