JavaScript-什麼是面向對象編程?

不吃素的唐三藏 發布于 2019/01/16 11:16
查看︰657|回復︰6

面向對象編程,OOP(Object Oriented Programming),是我們做計算機編程的一種編程架構,OOP的原則是計算機是由子程序作用的單個或者多個對象組成的,包含屬性和方法的對象是類的實例,但是在JavaScript中,是沒有類的概念的,是直接使用對象來實現編程

?

面向對象和面向過程的區別

?

面向對象和面向過程是兩種不同的編程思想,我們經常會听到兩者的比較,剛開始編程的時候,大部分應該都是使用的面向過程的編程,但是隨著我們的成長,還是面向對象的編程思想比較好一點~

其實面向對象和面向過程並不是完全相對的,也並不是完全獨立的。

我認為面向對象和面向過程的主要區別是面向過程主要是以動詞為主,解決問題的方式是按照順序一步一步調用不同的函數。

而面向對象主要是以名詞為主,將問題抽象出具體的對象,而這個對象有自己的屬性和方法,在解決問題的時候是將不同的對象組合在一起使用。

所以說面向對象的好處就是可擴展性更強一些,解決了代碼重用性的問題。

?

面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。

面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。

總結的說︰

??面向過程︰凡事親力親為,每件事的具體過程都要知道,注重過程

??面向對象︰根據需求尋找對象,所有的事都用對象來做,注重結果

?

??面向對象特性︰封裝、繼承、多態(抽象性)

??js是一門基于對象的語言︰js不是面向對象的語言,但是可以模擬面向對象的思想

有一個知乎的高票回答很有意思,給大家分享一下~

?

面向對象︰ 狗.吃(屎)

面向過程︰ 吃.(狗,屎)

具體的實現我們看一下最經典的“把大象放冰箱”這個問題

面向過程的解決方法

?

在面向過程的編程方式中實現“把大象放冰箱”這個問題答案是耳熟能詳的,一共分三步︰

?

開門(冰箱);

裝進(冰箱,大象);

關門(冰箱)。

面向對象的解決方法

?

冰箱.開門()

冰箱.裝進(大象)

冰箱.關門()

?

可以看出來面向對象和面向過程的側重點是不同的,面向過程是以動詞為主,完成一個事件就是將不同的動作函數按順序調用。

面向對象是以主謂為主。將主謂看成一個一個的對象,然後對象有自己的屬性和方法。比如說,冰箱有自己的id屬性,有開門的方法。然後就可以直接調用冰箱的開門方法給其傳入一個參數大象就可以了。

?

?

萬物皆對象

現實世界中客觀存在的任何事物都可以看作對象

對象︰用來描述客觀事物的一個實體,由一組屬性和方法構成

?

封裝︰(encapsulation)

就是把一個事物包裝起來,盡可能的隱藏細節

?

?

類︰類為它的全部對象給出了一個統一的定義,而它的每一個對象則是這一定義的一個實體

即︰類和對象的關系就是抽象和具體的關系;

?

屬性︰對象所擁有的靜態特征在類中的表示時稱為類的屬性, “有”什麼東西

?

方法︰對象執行的操作稱為類方法,事物的行為, 事物用“能”

?

對象︰類的實例,真實存在的

?

例如︰

跑車-

屬性︰發動機,方向盤 ?

方法︰發動,加速,剎車

?

對象:具體到是蘭博基尼,還是保時捷,還是野馬,布加迪。

?

這就是具體的JavaScript面向對象的知識概念。理解好面向對象編程的原理,在後面我們使用JavaScript做編程設計的時候,會方便許多


全部點贊
總計︰ --

共有6條評論

招版主啦

版主

  • 楊_宇 楊_宇
  • WEB前講師-甦少強 WEB前講師-甦少強
  • web講師--何廣森 web講師--何廣森
  • web前端講師-閆華偉 web前端講師-閆華偉
  • zacharyjoke zacharyjoke
  • Web講師-李家靖 Web講師-李家靖

注冊有禮

完善以下信息,為你推薦奧門娛樂網址

  • 學生
  • 白領
  • 高管
  • 自由職業
  • 其他
  • 工作需要
  • 自我提升
  • 興趣愛好
  • 創業/轉型
  • 其他
  • 小白
  • 了解
  • 熟悉
  • 精通
  • 其他
  • 高中/中專
  • 專科
  • 本科
  • 碩士
  • 其他
  • 影視槍戰大片特效解析
  • PS視覺驚悚課堂
  • 45天7千平方大廈變形記
  • 原畫學習痛點技法全解析
  • 影視動畫奇幻課堂
  • AI高端商業設計全攻略
  • UG職場生存必備指南
  • 日賺千元之新媒體行業揭秘
出現異常