JS中的原型(prototype)具有以下作用:
繼承:通過原型鏈實現對象之間的繼承關系。子對象可以通過原型鏈訪問父對象的屬性和方法。
屬性和方法的共享:通過原型,可以將屬性和方法共享給所有實例對象,避免了每個實例對象都擁有一份相同的屬性和方法,節省了內存空間。
擴展對象:可以通過原型動態地為對象添加新的屬性和方法。
實現封裝和信息隱藏:將屬性和方法定義在構造函數的原型上,可以隱藏對象的內部實現細節,只暴露給外部使用的接口。
提供對象的公共方法:在原型上定義的方法可以被所有實例對象共享,可以作為對象的公共方法被調用。
優化性能:通過原型鏈訪問屬性和方法時,會先在實例對象自身查找,如果找不到,再根據原型鏈向上查找,這樣可以減少屬性和方法的查找時間,提高性能。
總之,原型在JS中扮演著非常重要的角色,可以實現繼承、共享屬性和方法、動態擴展對象等功能,提高代碼的復用性和性能。