js中原型模式

  • 原型模式就是用克隆對象來建立對象的,在es6中提供了Object.create方法來克隆對象
    • 在不支持該方法的瀏覽器中,能夠使用如下代碼:
    Object.create = Object.create || function (obj) {
        var f = function () {};
        f.prototype = obj;
        return new f();
    }
  • 原型鏈的委託機制就是原型繼承的本質,原型繼承的基本規則有以下幾條:
    • 原型編程的一個重要特性就是當對象沒法響應某個請求時,會把該請求委託給它本身的原型
    • 全部數據都是對象,按照javascript設計之初的想法,除去undefined以外,一切都是對象,因此number、Boolean、string基本類型數據均可以經過包裝類的形式建立
    • 要獲得一個對象,不是經過實例化類,而是找到一個對象做爲原型並克隆它
    • 對象會記住它的原型,__proto__屬性
  • 設計模式在不少時候其實體現的都是語言的不足之處
  • 在js引擎下,Object.create建立對象的效率並不高,比一般構造函數建立對象要慢,同時Object.create(null)能夠建立出沒有原型的對象
相關文章
相關標籤/搜索