JS中的constructor 和 prototype

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 的区别-------------------------------------------------------------------------

1 function Person(name){
2   this.name = name;
3   this.showMe = function(){
4       alert(this.name);
5   }    
6 }
7 var one = new Person("tommy");
8 one.showMe();// tommy

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

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

猜你喜欢

转载自www.cnblogs.com/ming-os9/p/8961991.html