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