<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙TypeScript學習第17天:【對象】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-15 15:33 ? 次閱讀

1、TypeScript 對象

對象是包含一組鍵值對的實例。 值可以是標量、函數、數組、對象等,如下實例:

var object_name = { 
    key1: "value1", // 標量
    key2: "value",  
    key3: function() {
        // 函數
    }, 
    key4:["content1", "content2"] //集合
}復制

以上對象包含了標量,函數,集合(數組或元組)。

對象實例

鴻蒙開發文檔參考了:[qr23.cn/AKFP8k]

TypeScript

var sites = { 
   site1:"Runoob", 
   site2:"Google" 
}; 
// 訪問對象的值
console.log(sites.site1) 
console.log(sites.site2)復制

編譯以上代碼,得到以下 JavaScript 代碼:

JavaScript

var sites = { 
   site1:"Runoob", 
   site2:"Google" 
}; 
// 訪問對象的值
console.log(sites.site1) 
console.log(sites.site2)復制

輸出結果為:

Runoob
Google

2、TypeScript 類型模板

假如我們在 JavaScript 定義了一個對象:

var sites = { 
   site1:"Runoob", 
   site2:"Google" 
};復制

這時如果我們想在對象中添加方法,可以做以下修改:

sites.sayHello = function(){ return "hello";}

如果在 TypeScript 中使用以上方式則會出現編譯錯誤,因為Typescript 中的對象必須是特定類型的實例。

TypeScript

sites.sayHello = function(){ return "hello";}復制

編譯以上代碼,得到以下 JavaScript 代碼:

JavaScript

var sites = {
    site1: "Runoob",
    site2: "Google",
    sayHello: function () { } // 類型模板
};
sites.sayHello = function () {
    console.log("hello " + sites.site1);
};
sites.sayHello();復制

輸出結果為:

hello Runoob

此外對象也可以作為一個參數傳遞給函數,如下實例:

TypeScript

var sites = {
    site1: "Runoob",
    site2: "Google",
    sayHello: function () { } // 類型模板
};
sites.sayHello = function () {
    console.log("hello " + sites.site1);
};
sites.sayHello();復制

編譯以上代碼,得到以下 JavaScript 代碼:

JavaScript

var sites = {
    site1: "Runoob",
    site2: "Google"
};
var invokesites = function (obj) {
    console.log("site1 :" + obj.site1);
    console.log("site2 :" + obj.site2);
};
invokesites(sites);復制

輸出結果為:

site1 :Runoob
site2 :Google

3、鴨子類型(Duck Typing)

鴨子類型(英語:duck typing)是動態類型的一種風格,是多態(polymorphism)的一種形式。

在這種風格中,一個對象有效的語義,不是由繼承自特定的類或實現特定的接口,而是由"當前方法和屬性的集合"決定。

搜狗高速瀏覽器截圖20240326151547.png

"當看到一只鳥走起來像鴨子、游泳起來像鴨子、叫起來也像鴨子,那么這只鳥就可以被稱為鴨子。"

在鴨子類型中,關注點在于對象的行為能做什么,而不是關注對象所屬的類型。例如,在不使用鴨子類型的語言中,我們可以編寫一個函數,它接受一個類型為"鴨子"的對象,并調用它的"走"和"叫"方法。在使用鴨子類型的語言中,這樣的一個函數可以接受一個任意類型的對象,并調用它的"走"和"叫"方法。如果這些需要被調用的方法不存在,那么將引發一個運行時錯誤。任何擁有這樣的正確的"走"和"叫"方法的對象都可被函數接受的這種行為引出了以上表述,這種決定類型的方式因此得名。

interface IPoint { 
    x:number 
    y:number 
} 
function addPoints(p1:IPoint,p2:IPoint):IPoint { 
    var x = p1.x + p2.x 
    var y = p1.y + p2.y 
    return {x:x,y:y} 
} 
 
// 正確
var newPoint = addPoints({x:3,y:4},{x:5,y:1})  
 
// 錯誤 
var newPoint2 = addPoints({x:1},{x:4,y:3})

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    55

    文章

    1760

    瀏覽量

    42153
  • HarmonyOS
    +關注

    關注

    79

    文章

    1876

    瀏覽量

    29331
  • OpenHarmony
    +關注

    關注

    23

    文章

    3376

    瀏覽量

    15192
收藏 人收藏

    評論

    相關推薦

    鴻蒙TypeScript入門學習第6天:【條件語句】

    條件語句用于基于不同的條件來執行不同的動作。 TypeScript 條件語句是通過一條或多條語句的執行結果(True 或 False)來決定執行的代碼塊。
    的頭像 發表于 04-01 13:51 ?455次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第6天:【條件語句】

    鴻蒙TypeScript學習第7天:【TypeScript 循環】

    有的時候,我們可能需要多次執行同一塊代碼。一般情況下,語句是按順序執行的:函數中的第一個語句先執行,接著是第二個語句,依此類推。 編程語言提供了更為復雜執行路徑的多種控制結構。
    的頭像 發表于 04-02 14:28 ?464次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第7天:【<b class='flag-5'>TypeScript</b> 循環】

    鴻蒙TypeScript 開發學習第9天:【TypeScript Number】

    TypeScript 與 JavaScript 類似,支持 Number 對象。 Number 對象是原始數值的包裝對象。
    的頭像 發表于 04-07 18:02 ?480次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b> 開發<b class='flag-5'>學習</b>第9天:【<b class='flag-5'>TypeScript</b> Number】

    鴻蒙語言TypeScript學習第16天:【類】

    TypeScript 支持面向對象的所有特性,比如 類、接口等。
    的頭像 發表于 04-15 09:29 ?520次閱讀
    <b class='flag-5'>鴻蒙</b>語言<b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第16天:【類】

    鴻蒙TypeScript學習第20天:【模塊】

    TypeScript 模塊的設計理念是可以更換的組織代碼。 模塊是在其自身的作用域里執行,并不是在全局作用域,這意味著定義在模塊里面的變量、函數和類等在模塊外部是不可見的,除非明確地使用 export 導出它們。類似地,我們必須通過 import 導入其他模塊導出的變量、函數、類等。
    的頭像 發表于 04-18 15:19 ?474次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第20天:【模塊】

    學習鴻蒙背后的價值?星河版開放如何學習?

    需要有更多的鴻蒙人才;鴻蒙開發工程師也將會迎來爆發式的增長! 所以學習鴻蒙勢在必行,而大部分人都能適合學鴻蒙。人群可以包括: 那
    發表于 02-22 20:55

    【高手問答】17期:小梅哥和你一起深入學習 FPGA

    `小梅哥和你一起深入學習FPGA高手問答17期小編導讀: 本期高手問答(11.21~12.5)邀請到了《FPGA與大學EDA教學》、《FPGA在電子設計大賽中的應用》的作者小梅哥, 梅工,論壇
    發表于 11-21 14:47

    鴻蒙應用開發基礎術語學習 輕應用

    開發者可以通過鴻蒙輕應用,通過點擊關鍵詞解鎖詳細解釋的方式,方便快速了解鴻蒙的基礎術語??梢元毩⒆鳛橐粋€應用發展,也可以作為各種應用中的一個模塊。適合HarmonyOS開發者及潛在開發者們
    發表于 05-19 18:33

    【觸覺智能 Purple Pi OH 開發板體驗】二、鴻蒙系統APP應用例程學習HDC使用學習

    兩年開發鴻蒙APP也是使用的這兩種語言進行開發。當下看TypeScript程序還能說勉強看懂,但是當下開發程序就沒那個實力了,需要之后在抽時間學習。技術更新的也確實是快?。。?! 二、天氣預報程序開發
    發表于 08-31 11:13

    基于QoS的學習對象推薦

    本文將一種基于QoS 的算法應用到學習對象的評分中。在基于AEHS 框架的基礎上,提出了一種以學習者為中心的E-Learning 系統,并在此基礎上討論一種自適應學習過程。
    發表于 12-22 14:26 ?9次下載

    快速了解TypeScript和JavaScript之間的差異

    如果我們同時考慮兩者 ——TypeScript 與 JavaScript,那么每個 JavaScript 代碼在 TypeScript 中都是有效的。這意味著 TypeScript 是 JavaScript 的超集。
    的頭像 發表于 03-13 10:19 ?677次閱讀

    TypeScript之父也搞大模型:推出TypeChat

    C# 和 TypeScript 之父 Anders Hejlsberg 今天宣布了全新的開源項目 ——TypeChat,它通過 AI 在自然語言和應用程序模式 (application schema),以及 API 之間構建了一座 “橋梁”,能用新穎有趣的方式使用 TypeScr
    的頭像 發表于 07-24 09:27 ?593次閱讀
    <b class='flag-5'>TypeScript</b>之父也搞大模型:推出TypeChat

    鴻蒙TypeScript入門學習第2天【TypeScript安裝】

    本文介紹 TypeScript 環境的安裝。 我們需要使用到 npm 工具安裝,如果你還不了解 npm,可以參考我之前文檔。
    的頭像 發表于 03-27 15:22 ?218次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b>第2天【<b class='flag-5'>TypeScript</b>安裝】

    鴻蒙TypeScript學習第10天:【String(字符串)】

    String 對象用于處理文本(字符串)。
    的頭像 發表于 04-08 14:32 ?257次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第10天:【String(字符串)】

    鴻蒙TypeScript學習第12天【Map對象

    Map 對象保存鍵值對,并且能夠記住鍵的原始插入順序。 任何值(對象或者原始值) 都可以作為一個鍵或一個值。
    的頭像 發表于 04-10 15:47 ?123次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>第12天【Map<b class='flag-5'>對象</b>】
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>