學習筆記——super的用法

来源:http://www.cnblogs.com/espelansa/archive/2017/12/06/7993349.html
-Advertisement-
Play Games

參考文檔: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/super 使用方法1:super就是調用一下父類的構造函數 在類繼承extends時,如果子類中存在構造函數,則必須在使用"this" ...


參考文檔:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/super

使用方法1:super就是調用一下父類的構造函數

在類繼承extends時,如果子類中存在構造函數,則必須在使用"this"之前首先調用super( ) 不然會報錯。

class myDate2 extends Date {
  constructor() {
   // 少了super,而下文中使用了this
  }

  getFormattedDate() {
    var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    return this.getDate() + "-" + months[this.getMonth()] + "-" + this.getFullYear();
  }
}

var x2 = new myDate2() // 報錯,哪怕上面去除 getFormattedDate 方法依然會報錯


使用super後不僅可以調用父類的構造函數,還可以直接通過super調用父類的方法。

使用方法2:調用父類上的靜態方法

// 先介紹一下類的靜態方法
//
1. static 關鍵字用來定義一個類的一個靜態方法。 // 2. 調用靜態方法不需要實例化該類,但不能通過一個類實例調用靜態方法。 // 3. 靜態方法通常用於為一個應用程式創建工具函數。 class Point { constructor(x, y) { this.x = x; this.y = y; } static distance(a, b) { const dx = a.x - b.x; const dy = a.y - b.y; return Math.hypot(dx, dy); } } const p1 = new Point(5, 5); const p2 = new Point(10, 10); console.log(Point.distance(p1, p2));

舉例:

class Human {
  constructor() {}
  static ping() {
    return 'ping';
  }
}

class Computer extends Human {
  constructor() {}
  static pingpong() {
    return super.ping() + ' pong'; 
  }
}
Computer.pingpong(); // 'ping pong'

 

其他註意點:

不得使用delete刪除super的屬性/方法

一個屬性定義為不可寫時,super將不能重寫這個屬性的值。

 

 

 

 

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 前言: 操作資料庫時候難免會因為“大意”而誤操作,需要快速恢復的話通過備份來恢復是不太可能的,因為需要還原和binlog差來恢復,等不了,很費時。這裡先說明下因為Delete 操作的恢復方法:主要還是通過binlog來進行恢復,前提是binlog_format必須是Row格式,否則只能通過備份來恢復 ...
  • 1. 首先要在實例級別啟用FILESTREAM,打開Sql Server Configuration Manager視窗,雙擊需要設置的SQL SERVER實例進行設置。 2. 需要更改 SQL SERVER 實例的 FILESTREAM 訪問級別,執行以下代碼,並重啟 SQL SERVER 服務: ...
  • [20171206]rman與truncate.txt--//昨天下班在回家的路上,突然想起以前遇到的問題,就是truncate表後,rman做備份時會備份多少truncate表的信息,--//當時在itpub上,還存在討論,就是rman會備份空block嗎?參考鏈接:http://www.itpu ...
  • 待續 ...
  • 一,工程圖。 二,代碼。 ViewController.m ...
  • weex旨在“一次撰寫,多端使用”,意思是,用weex寫的頁面,不論是Android還是iOS甚至web端都可以使用,這樣的話就可以極大的降低開發成本, weex其實就是寫的一個類似於h5的頁面(js編寫),寫完之後將vue文件編譯、部署到Nginx伺服器上(Nginx伺服器後面會講到),這時候在... ...
  • android studio報下圖中的這個錯誤的解決辦法: 解決辦法: 1、刪除掉下圖中標記的2個文件夾 2、將下圖標記的文件的文件名重命名,把最後的尾碼.lock去掉,因為加上了這個尾碼,所以提示找不到cache.properties 這個文件 3、點擊try again即可解決 ...
  • 當知道要上傳的視頻資料從20條變成100條時,我就明白,絕對不能再人工處理了。他們總是想當然的認為,錄入一條數據需要1分鐘,那錄入20條數據就是20分鐘,錄入100條數據,不就是100分鐘嗎?我有時候,真的很想問問他們,沒有考慮過人是會犯錯的嗎?數據越多,出錯的可能就越大;但是數據本身,又是不允許出... ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...