類抄襲集成javascript
function father(){ var instance = this; instance.name = this.name; instance.getName = function(){ return this.name; } return instance ; } function subClass (name){ father.call(subClass); } function classFactroy (name) { return new subClass(name); }
類原型繼承java
function father(){}; father.prototype.getName = function(){ return this.name; }; function subClass(name){ this.name = name; } subClass.prototype = new father();
第一種方法的的調用屬性無須回溯原型鏈,效率高,可是每一個實例本地都是一份獨立屬性拷貝,浪費內存空間;第二種方法的都是公共的指向原型鏈的屬性,本地沒有內存開銷,可是方法調用須要回溯原型鏈,效率低下;根據不一樣的狀況須要分別對待;this
第一種方法沒有涉及到任何的原型鏈維護,沒法用instanceof類型判斷;prototype