JS中的公有、私有、靜態、共享屬性和方法

什麼是Javascript的公有屬性/方法,私有屬性/方法,靜態屬性/方法,共享屬性/方法?

公有是指,在外部環境中可以獲取的,可以直接通過實例對象用”.”運算符操作獲得。(在構造函數中用this進行聲明)

私有是指,在外部環境中不能直接訪問,該屬性/方法只能在對象的構造函數內訪問。(聲明在構造函數裏的變量和方法,沒有用到this)

靜態是指,屬性/方法是歸屬於類的,而非實例對象。可以直接通過類名來調用得到。

共享是指,實例對象之間,共享屬性和方法,藉助向原型對象添加屬性和方法,可以實現。

(雖然都有“公共”的含義,但是可以看出靜態的和共享的之間的區別了吧)

爲什麼把方法寫在prototype中而不寫在構造函數中

參考: https://blog.csdn.net/FJ20100...
因爲寫在構造函數中更消耗內存。寫在構造函數中的話,每次用構造函數new一個對象的話,都會創建一份新的屬性和方法存到內存中。而寫在原型對象中就沒有這個問題,對於這個類,只有一個原型對象,因此寫在原型對象之下的方法也不會多次複製,永遠只有一份。
(如果寫在原型對象中,多個實例調用這個方法,會有什麼問題嗎?比如對同一個對象進行操作?)驗證方法 方法用 ==進行比較,即內存地址的比較

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章