【JavaScript】獲取未知類的結構

来源:http://www.cnblogs.com/HDK2016/archive/2016/12/17/6192778.html
-Advertisement-
Play Games

本篇文章是講解了一個demo實例,就是怎樣獲取類的結構,以及應該註意的事項,若有什麼建議或意見歡迎前來打擾。 ...


目錄結構:

contents structure [-]
  1. 為什麼需要獲取類的結構
    1. 關於JavaScript中的類
    2. 定義類的方法
      1. 第一種
      2. 第二種
  2. DEMO
    1. HTML頁面
    2. date文件
    3. 註意事項
  3. 參考文章

為什麼需要獲取類結構的代碼

筆者認為主要是方便,如果一個項目很大或是引用了其它地方的js文件,如果順著src文件查找會很麻煩。為了對代碼理解的更好,還需要對javaScript的類有所瞭解,更多情況讀者可以參考JavaScript定義類的三種方法

關於javascript中對類的簡介

其實Javascript中沒有類這個定義,但是有類這個概念。很多人都寫過這樣的代碼,就是一個關鍵字 function,然後定義一個方法名,方法名後緊跟一對括弧。

定義類的方法

第一種

function Cat() {
    this.name = "大毛";
}

或是

Cat.prototype.makeSound = function(){
  alert("喵喵喵");
}

然後通過

var cat = new Cat();

創建對象,和

cat.makeSound();

來調用。

第二種

通過Object.create()創建

  var cat={
    name:"guaiguai"
  }
  var q=Object.create(cat);

不過這種方式下,也可以直接用

cat.name

調用。

Demo

HTML頁面

<!DOCTYPE html>
<html>
  <head>
    <title>showProperty.html</title>

    <meta name="content-type" content="text/html; charset=UTF-8">

    <script src="date.js"></script>
  </head>
  
  <body>
  <h1>show Object detail</h1>
  <script>

    var num=new date();
    
    var property="<h2>property:</h2>";
    var functions="<h2>function:</h2>";
    var complete="<h2>complete:</h2>"
        
    //get complete information
    complete=complete+date;
    
    //through function and property
   for(prop in num){
     if(typeof(num[prop])=="function"){
       functions=functions+prop+":"+num[prop]+"<br>";
     }else
       property=property+prop+":"+num[prop]+"<br>";
   }
   //print
   document.write(complete+"<br>"+property+"<br>"+functions);
   
  </script>
  </body>
</html>

data文件

function date() {
    var year;
    var month;
    var day;
    this.year=new Date().getFullYear();
    this.month=new Date().getMonth();
    this.day=new Date().getDate();
    var fun;
    
    this.fun=function(){
        alert("I am coming fun1");
        this.year=new Date().getFullYear()-1;
        this.month=new Date().getMonth()-1;
        this.day=new Date().getDay()-1;
    }
}

註意事項

上面這段代碼只能測試從外面連接進來的js文件里的類,而js自帶的類就不行,比如:將上面的

var num=new date();

換成

var num=new Date();

就不行,這種情況下是不會顯示時間類的結構的,除非在覆蓋後,才會顯示。

參考文章

 http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html

 http://www.jb51.net/article/20430.htm

 http://www.cnblogs.com/xcj26/archive/2013/04/08/3006023.html

 

本文為博主原創文章,如需轉載請註明出處。


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

-Advertisement-
Play Games
更多相關文章
  • java.lang.IncompatibleClassChangeError: Implementing class,用常見的解決問題的方法解決不常見的問題 ...
  • JavaScript的數組,相比其他語言,是比較特殊的。數組是Object類型,只不過,有幾個比較特殊的地方: 可以看到,如果不指定key值,數組會自動添加預設索引下標值,將其作為key。 這種情況下,length又是如何計算的呢? 從上面的代碼可以看出,length值是根據最大的索引下標計算的,也 ...
  • 看看變數類型,也是學習任何一門編程語言都必須要面對的重點知識 ...
  • 1.功能 解決javascript回調地獄 安裝eventProxy 2.常用方法 ①解決回調方法 emit:觸發事件 after all:告訴它你要監聽哪些事件,並給它一個回調函數。ep.all('event1', 'event2', function (result1, result2) {}) ...
  • Javascript中有'=='和' '兩種相等比較,後者是全等,會判斷數據類型,前者是相等,在比較時,會發生隱式轉換。 如果將兩個對象做'=='比較,結果會如何呢? 比如有如下兩個對象: 可以看到,哪怕兩個對象的屬性完全一樣,無論是'=='或者' ',返回都是false。 原因:對象通過指針指向的 ...
  • 1.map 2.remove 移除數組 array 中滿足 predicate 條件的所有元素 ,返回的是被移除元素數組. 3.uniq 唯一 ...
  • 1.find 2.findIndex _.findIndex(array, [predicate=_.identity], [thisArg])該方法類似 _.find,區別是該方法返回的是符合 predicate條件的第一個元素的索引,而不是返回元素本身. 參數 predicate 提供的是一個屬 ...
  • scroll事件實現監控滾動條並分頁顯示示例(zepto.js ) 需求:在APP落地頁上的底部位置顯示此前其他用戶的購買記錄,要求此div盒子只顯示3條半,但一頁有10條,div內的滑動條滑到一頁底部自動載入下一頁併發載入埋點。 實現:首先理解三個概念,分別是contentH,viewH,scro ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...