一、封裝的概念 面向對象的類包括兩大成員,一種是暴露給外部的介面,另一種是只在類內部才能訪問的私有屬性。在這個類被實例化成對象後,用戶只能通過操作給定的介面來訪問該類內部的私有屬性,這就被稱為面向對象的封裝性。 二、ES5如何實現封裝 這裡只說一種方法,就是通過閉包。 可以看下這個例子,在構造函數( ...
一、封裝的概念
面向對象的類包括兩大成員,一種是暴露給外部的介面,另一種是只在類內部才能訪問的私有屬性。在這個類被實例化成對象後,用戶只能通過操作給定的介面來訪問該類內部的私有屬性,這就被稱為面向對象的封裝性。
二、ES5如何實現封裝
這裡只說一種方法,就是通過閉包。
可以看下這個例子,在構造函數(也就是ES6的類)中,定義了私有變數_gender,為了和其他屬性區分開,這裡加一個首碼“_”,在實例化後的對象中,gender對外是完全不可見的。想要知道gender是男是女,只能通過我在類暴露給你的getGender方法獲取,除了獲取,不能做其他的任何操作了,這就是封裝的特點:類負責將私有變數隱藏起來,外界對私有變數的所有訪問只能通過提供的介面實現。
二、ES6如何實現封裝
和ES5的實質是完全一樣的,只是寫法不同。