在寫面向?qū)ο缶幊趟枷?設(shè)計(jì)模式中的js部分的時(shí)候發(fā)現(xiàn)很多基礎(chǔ)知識(shí)不了解的話,是很難真正理解和讀懂js面向?qū)ο蟮拇a。為此,在這里先快速補(bǔ)上。然后繼續(xù)我們的面向?qū)ο缶幊趟枷?設(shè)計(jì)模式。
什么是鴨子類型
javascript是一門典型的動(dòng)態(tài)類型語(yǔ)言,也就弱類型語(yǔ)言。
那什么是鴨子類型:【如果它走起路來(lái)像鴨子,叫起來(lái)也是鴨子,那么它就是鴨子】
var 鴨子 = { 走路: function () { }, 咕咕咕: function () { } }var 鸚鵡 = { 走路: function () { }, 咕咕咕: function () { } }
這只鸚鵡同樣有“走路”和“咕咕咕”的方法,那在js的世界里就可以把它當(dāng)成鴨子。
可以這樣調(diào)用:
var 鴨子們 = []; 鴨子們.push(鴨子); 鴨子們.push(鸚鵡);for (var i = 0; i < 鴨子們.length; i++) { 鴨子們[i].走路(); }
所以js的世界沒(méi)有抽象和接口,但可以約定“我們都是鴨子”。
javascript的面向?qū)ο?/h1>
javascript不僅是直譯式腳本語(yǔ)言、動(dòng)態(tài)類型、弱類型語(yǔ)言、函數(shù)為一等公民的語(yǔ)言,