1、类和原型:原型对象是类的核心,类的所有实例都从同一个原型上继承属性和方法,原型对象是类的唯一标识
2、类和构造函数:构造函数通过new关键字来创建对象,构造函数的prototype属性被用作新对象的原型。所以,同一个构造函数创建的对象都是同一个类的成员
3、类、原型、构造函数:当且仅当两个对象继承自同一个原型对象时,他们才是属于同一个类的实例。而初始化对象的构造函数则不能作为类的标识,因为两个不同的构造函数如果prototype指向同一个原型对象,那么这两个构造函数创建的实例仍然属于同一个类
4、constructor:每个javascript函数(除了ES5中的Function.bind()方法)都会自动拥有一个prototype属性,这个属性是一个对象,这个对象拥有一个constructor属性,它指向函数本身
var F = function(){};
var p = F.prototype;
var c = P.constructor;
c === F // true