更新時間:2021年05月18日15時04分 來源:傳智教育 瀏覽次數:
JavaScript是一種通過原型實現繼承的語言與別的高級語言是有區(qū)別的,像java,C#是通過類型決定繼承關系的,JavaScript是的動態(tài)的弱類型語言,總之可以認為JavaScript中所有都是對象,在JavaScript中,原型也是一個對象,通過原型可以實現對象的屬性繼承,JavaScript的對象中都包含了一個“prototype”內部屬性,這個屬性所對應的就是該對象的原型。
“prototype”作為對象的內部屬性,是不能被直接訪問的。所以為了方便查看一個對象的原型,Firefox和Chrome內核的JavaScript引擎中提供了“proto”這個非標準的訪問器(ECMA新標準中引入了標準對象原型訪問器“Object.getPrototype(object)”)原型的主要作用就是為了實現繼承與擴展對象。
什么時候用prototype?
使用 prototype的好處是不會額外產生內存,所有實例化后的對象都會從原型上繼承這個方法。也就是需要一個子類擁有父類的某些特性(同種特性可以覆蓋),又可以添加自己的特性,而不會影響父類時候使用prototype。
Prototype通常用來解決一個問題:對象的創(chuàng)建比較耗費資源。比如,對象創(chuàng)建的時候需要訪問數據庫、需要讀取外部文件、需要使用網絡,這些都是比較耗費時間和內存的。如果可以用clone來解決,就方便多了。當需要創(chuàng)建很多 擁有相同屬性的對象時候需要clone。
猜你喜歡: