ES6學習筆記(一):輕鬆搞懂面向對象編程、類和對象

来源:https://www.cnblogs.com/lfcss/archive/2020/02/25/12364359.html
-Advertisement-
Play Games

@[TOC] 面向過程編程P OP(Process oriented programming) 面向過程就是分析出解決問題的步驟,然後用函數把這些步驟一步一步實現,使用的時候再一個一個的依次調用就可以了。 優點:性能比面向對象高,適合跟硬體聯繫很緊密的東西,例如單片機就採用的面向過程編程 缺點:沒有 ...


目錄

@

面向過程編程P OP(Process oriented programming)

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

  • 優點:性能比面向對象高,適合跟硬體聯繫很緊密的東西,例如單片機就採用的面向過程編程
  • 缺點:沒有面向對象易維護、易復用、易擴展。

面向對象編程OOP(Object Oriented Programming)

面向對象是把事務分解成為一個個對象,然後由對象之間分工與合作。
面向對象編程具有靈活性、代碼可復用、容易維護和開發的優點,更適合多人合作的大型軟體項目

  • 優點:易維護、易復用、易擴展,由於面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護
  • 缺點: 性能比面向過程低

### ES6中的類和對象
#### 面向對象

面向對象的思維特點:

  • 抽取(對象)對象共用的屬性和行為組織(封裝)成一個類(模板)
  • 對類進行實例化,獲取類的對象
    #### 1、對象
    現實生活中:萬物皆對象,對象是一個具體的事物,看得見摸得著的實物。
    在javascript中,對象是一組無序的相關屬性和方法的集合,所有的事物都是對象,例如:字元串、數組、數值、函數等。
    對象是由屬性和方法組成的:
  • 屬性: 事物的特征,在對象中用屬性來表示
  • 方法: 事物的行為,在對象中用方法來表示

2、類class

在ES6中新增加了類的概念,可以使用class關鍵字聲明一個類,之後以這個類來實例化對象。
類抽象了對象的公共部分,它泛指某一大類(class)
對象特指某一個,通過類實例化一個具體的對象。

3、創建類

語法:

class name {
    //class body
}

創建實例:

 var xx = new name() //類必須使用new實例化對象

#### 4、 創建對象
constructor()的方法是類的構造函數(預設方法),用於傳遞參數,返回實例對象,通過new命令生成對象實例時,自動調用該方法,如果沒有顯示定義,類內部會自動給我們創建一個constructor()

//創建類class
class Star {
    constructor(uname) {
        this.uname = uname
    }
}

// 利用類創建對象 new
let b = new Star('藍風')
console.log(b) //藍風

創建類和對象的幾點註意事項:

  1. 通過class關鍵字創建類,類名我們還是習慣性定義首寫字母大寫
  2. 類裡面有個constructor函數,可以接受傳遞過來的參數,同時返回實例對象
  3. constructor 函數只要new生成實例時,就會自動調用這個函數,如果我們不寫這個函數,類也會自動生成這個函數
  4. 生成實例 new 不能省略
  5. 最後註意語法規範,創建類 類名後面不要加小括弧,生成實例 類名後面要加小括弧,構造函數不需要加function

5、類添加方法

class Person {
    constructor(name, age) {
    this.name = name
    this.age = age
    }
    say () {
        console.log(this.name + '你好')
    }
}
let person1 = new Person('藍風', 28)
person1.say() // 藍風你好

添加類方法註意事項:

  1. 我們類裡面的所有函數不需要寫function
  2. 多個函數方法之間不需要添加逗號分隔

總結

這篇文章主要介紹了面向過程編程和麵向對象編程各自的優缺點,ES6類和對象,創建類和對象等,這是自己的學習筆記,僅代表自己的觀點,還請各位指教。如果想瞭解更多,請掃描下麵二維碼:
在這裡插入圖片描述


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背景 ​ SQL作為一門標準的、通用的、簡單的DSL,在大數據分析中有著越來越重要的地位;Spark在批處理引擎領域當前也是處於絕對的地位,而Spark2.0中的SparkSQL也支持ANSI SQL 2003標準。因此SparkSQL在大數據分析中的地位不言而喻。 本文將通過分析一條SQL在Spa ...
  • https://blog.csdn.net/sumaliqinghua/article/details/86246762 【通俗易懂】關係模式範式分解教程 3NF與BCNF口訣!小白也能看懂原創置頂 沃茲基.碩德 最後發佈於2019-01-10 18:26:14 閱讀數 13082 收藏展開本來是為 ...
  • https://blog.csdn.net/wyh7280/article/details/83350722 範式通俗理解:1NF、2NF、3NF和BNCF原創hongiii 最後發佈於2018-10-24 21:03:43 閱讀數 14993 收藏展開範式通俗理解:1NF、2NF、3NF和BNCF ...
  • SQL腳本 /*************1:刪除臨時表*************/ if exists(select * from tempdb..sysobjects where id=object_id('tempdb..#tempTable')) drop table #tempTable; ...
  • 有時候我們需要跨庫join查詢,但是配置多數據源成本又太高,Oracle提供了DBLink功能,MySQL中也有類似的實現:federated engine。 1. MySQL中使用federated引擎的表能夠映射遠程資料庫的表,本地的這張表相當於遠程資料庫某表在本地的引用,在本地對錶的操作能夠實 ...
  • 註意:無特殊說明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 展示非同步任務狀態 當有一個Future(非同步)任務需要展示給用戶時,可以使用FutureBuilder控制項來完成,比如向伺服器發送數據成功時顯示成功提示: 效 ...
  • Android.bp是用來替換Android.mk的配置文件,它使用Blueprint框架來解析。Blueprint是生成、解析Android.bp的工具,是Soong的一部分。Soong則是專為Android編譯而設計的工具,Blueprint只是解析文件的形式,而Soong則解釋內容的含義,最終 ...
  • Api分類 internal api 翻譯為內部API,理解為供sdk內部使用的API。 這類介面最初打算就是不對外公開的,有點private的意思。 hide api 在源碼中看到使用@hide 標記的方法或類,就是hide的。 這類介面本意是要公開,但是當前階段仍然不穩定或未開發完成。所以暫時不 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...