1. 程式人生 > >JavaScript面向對象--多態

JavaScript面向對象--多態

如果 作用 rdquo style 操作 是什麽 技術 面向 黑白

一、多態的概念

  相同的函數作用於不同的對象,會得到不同的結果,這就是多態。

二、如果不用多態,會怎麽樣?

 技術分享圖片

這裏有個淺顯易懂的例子,定義一個函數叫makeSound,傳入不同的對象,函數體裏要寫不同的情況處理,比如發現傳來的是鴨子對象,就發出“嘎嘎嘎”的聲音,發現傳來的是狗狗,就發出“汪汪汪”的叫聲,後面可能還會傳來其他熊貓對象、馬對象,牛對象。。。這個if、、else if、、寫得完嗎?

二、如果用了多態,同樣的的情況又會是怎樣?

技術分享圖片

在同樣的情況下,每個對象都定義一個名為yell(喊叫)的函數,函數裏面的內容跟本對象的特點掛鉤。現在對於makeSound函數來說,它根本不關心傳入的是什麽對象,它只需要做一件事就行了,那就是執行傳入對象中的yell函數

多態的概念就是如此。比如:把打印機可以看作是父類,它只有一個方法:打印。黑白打印機、彩色打印機是他的兩個子類,引用的打印機父類後,兩個子類繼承了“打印”這個方法。但因為黑白打印機墨水是黑色的,執行打印操作後,效果就是黑白的;而彩色打印機墨水是彩色的,執行打印操作後,效果就是彩色的。

JavaScript面向對象--多態