js當然有類的概念,而且它和java一樣,被設計成純粹的面向對象的語言。js是弱類型語言,但這個並不意味着它沒有類的概念。很明顯地,我們經常能看到new Date()、new Array()之類的調用。這不就是類嗎?
一、定義類
那我們如何在js中自定義一個類呢?其實應該換個說法,我們該怎麼獲取一個某種自定義類型的對象。
1 2 3 4 5 6 |
|
沒錯,上面就是一個自定義類型對象的獲取方式。我們將一個函數視作構造函數,然後配合new關鍵字調用這個函數,它就會返回某一類型的對象。如果我們執行clazz instanceof Class,返回結果就是true,說明clazz確實是Class類的實例。
那麼我就將上面的js代碼翻譯成對應的java代碼以便理解:
1 2 3 4 5 |
|
與Java一樣,js中所有對象都是默認繼承自Object類的,所以無論是js還是java,執行clazz instanceof Object返回的都是true。
二、成員變量
我們知道,所謂成員變量,是指這個類的實例對象具有哪些屬性。先看看Java中如何定義成員變量:
1 2 3 4 |
|
然後對照js代碼:
1 2 3 4 |
|
這裏引出一個this,在js中,簡單來講,this就是指向當前對象,但實際上js中的this並不好理解,這裏也不會試圖講清楚js中this怎麼用