javascript 面向對象版塊之理解對象

這是 javascript 面向對象版塊的第一篇文章,主要講解對面向對象思想的一個理解。
先說說什麼是對象,其實這個還真的很差說。咱們能夠把本身當成一個對象,或者過年的時候相親,找對象,那麼你將來的老婆也是一個對象。咱們就要一些屬性,好比咱們的名字,年齡。咱們還有一些能夠作的事情,好比看電影,玩手機等等,其實這就是對象,而後描述的年齡以及看電影這些就是對象的屬性。javascript

咱們說javascript是一種面向對象的語言,那什麼又是面向對象呢?java

其實咱們在理解這些概念的時候有時候真的要刨根究底地去看看,真正的理解他們所要表達的意思,這樣纔會將知識點記得很清楚。

面向對象

舉個例子:
五一節快到了,大家全家都想去國外玩一下,首先大家須要肯定去哪兒,而後再決定怎麼去(跟團,或者自由行),而後須要帶一些什麼零食在路上(水,薯片,牙土豆等等),而後大家在當天去機場怎麼去(滴滴出行或者坐地鐵),而後大家就能夠飛到國外。忽然,你爸說,搞這些東西好複雜呀,不如咱們叫一個祕書來整理這一切吧(前提是要有一個祕書哈),而後咱們就直接負責到國外就行,接着大家都不用管關於旅行的事了而後愉快的開始玩吃雞。
其實這就是一個面向對象。你不須要知道怎麼去國外,整個過程你不用管,你所要關心的就是安全到達國外就能夠,而這個過程就交給了你爸爸的祕書這個對象來完成了。因此咱們面向的就是對象(你爸爸的祕書),這就是面向對象的思想。
用代碼能夠這樣描述:git

function TravelAbroad() {
  this.travelMode = 'Free-Exercise';
  this.food = ['water', 'Potato chips', 'Tooth potatoes'];
  this.transportationWay = 'didi';
  this.goAirport = function () {
    console.log('we go to ariport by' + this.transportationWay);
  }
  this.goAbroad = function () {
    // some code before arrive abroad
    this.goAirport();
    console.log('安全到達國外');
  }
}

let personFather = new TravelAbroad();
personFather.goAbroad();

面向過程

既然說了面向對象,那麼與之對應的就是面向過程。其實面向過程相比面向對象來講就很好理解了,好比上訴例子中,你爸爸的祕書作的事情就是面向過程,而後用代碼解釋就是,在函數執行過程當中,要實現一個一個的功能就是執行一個一個的函數模塊。最熟悉的C語言就是一種面向過程的語言。github

面向過程是一件事「該怎麼作「,面向對象是一件事「該讓誰來作」,而後那個「誰」就是對象,他要怎麼作是他本身的事,反正最後一羣對象協力能把事作好就好了。

javascript 的面向對象

面向對象(Object-Oriented,OO)的語言有一個標誌,那就是它們都有類的概念,而經過類能夠建立任意多個具備相同屬性和方法的對象。可是在ECMAScript 中沒有類的概念,所以它的對象也與基於類的語言中的對象有所不一樣。
ECMA-262 把對象定義爲:「無序屬性的集合,其屬性能夠包含基本值、對象或者函數。」嚴格來說,這就至關於說對象是一組沒有特定順序的值。對象的每一個屬性或方法都有一個名字,而每一個名字都映射到一個值。正由於這樣,咱們能夠把 ECMAScript 的對象想象成散列表:無非就是一組名值對,其中值能夠是數據或函數。segmentfault

小結

在這篇文章中,介紹了什麼是面向對象和麪向過程,以及javascript中對象的含義。在下篇文章中將要介紹一些對象屬性方面的知識。若是文章有錯誤還望各位大佬提出,一塊兒節流學習。安全

下一篇: javascript 面向對象版塊之對象屬性
上一篇: javascript 面向對象的程序設計函數

相關文章
相關標籤/搜索