2019-09-06對于javaScript面向對象的認識

原型鏈

js與java,c++等基于類的語言不同,js嚴格意義上說并不是完全面向對象的語言,它是基于原型的函數式編程,但是令人意外的是js確實是實現了面向對象的編程思想

es5面向對象

es5定義類語法相對繁瑣,因為我編程入門是從java開始,所以不怎么習慣es5中定義類的方式,定義類時,屬性是寫在構造方法中,而且對屬性賦值之前并沒有顯式聲明屬性,方法是寫在prototype中,js類的繼承也是基于原型的,定義的對象都有一個proto屬性,這就是對象從父類當中繼承的方法

es6面向對象

es6語法中新加入了class關鍵字,構造函數constructor也是顯式聲明定義,類方法不用使用function關鍵字直接以方法名定義,這與傳統面向對象語言語法類似,當然這只是es6提供給我們的語法糖,以class關鍵字定義的類屬性仍在構造函數中,方法仍在原型中,這是和js語言設計相關的,因為他是基于原型的,函數式的,一切對象都是函數

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容