鴨式辨型模仿介面

2021-07-27 03:53:18 字數 959 閱讀 5736

鴨式辨型:"像鴨子一樣走路並且嘎嘎叫的就叫鴨子。"通過制定規則來判定物件是否實現這個介面。

建立介面類,主要用來儲存資訊到例項類中:    

var inte***ce =function (name, methods)

介面就是自定義規則。我定義了會游泳,會嘎嘎叫,有兩條腿的就是鴨子:

var duck = new inte***ce('duck', ['swim', 'cry', 'foots']);
建立檢測方法。它用來檢測物件中有沒有實現duck介面中所有的方法,如果有就認為這個物件實現了duck介面;否則就認為沒有實現。
inte***ce.ensureimplements = function

(obj, inte***ce) } if

(nomethods.length)

else

};

建立被檢測的物件_newduck,這個物件繼承了三個方法。

var duck = function ()

duck.prototype =,

'cry': function

(){},

'foots': function

(){},

}var _newduck = new duck();

最後檢測,如果_newduck中有duck介面定義的所有方法,那麼我們就可以認為_newduck物件實現了duck介面。我們前面定義了鴨子是會游泳,會嘎嘎叫,還有兩條腿,所有符合這規則定義的就可以稱為鴨子。正如_newduck擁有了duck介面所有定義的方法。
inte***ce.ensureimplements(_newduck, duck);