JavaScript編程基礎 – 對象

JavaScript編程基礎 – 對象

JavaScript Programming Essentials – Object

本文簡要介紹JavaScript面向對象編程,如何實現其中的對象以及實例演示,希望對大家學習JavaScript有所幫助。

1. 面向對象編程特點

面向對象編程(Object-Oriented Programming, 即OOP) 是一種在Java, C++, Python等編程語言中廣泛應用的編程范式。而JavaScript以獨特的方式沿襲了傳統的面向對象編程,與傳統的編程語言不同,JavaScript有其自己的方式來實現面向對象編程。

接下來,簡要介紹以下幾個小節,以便理解對象:
? 如何創建和使用對象
? 對象的屬性
? 對象的方法

2. 對象

1) 數組的特性

我們從數組引述到對象。

數組是JavaScript語言的重要數據結構。數組實際上就是一組值的列表,該列表的每一個值都有自己的索引(即數字鍵),索引從零開始,依次遞增。

下面是數組的示例:

var colors = [‘red’, ‘blue’, ‘yellow’, ‘purple’, ‘orange’];
console.log(colors);

執行結果如下圖所示:
在這里插入圖片描述
接下來,如果要通過索引輸出值,如下代碼:

console.log(colors[0]);
console.log(colors[3]);

執行結果如下圖所示:

在這里插入圖片描述
將索引排列起來,再把對應的值排列起來,就會列出一個所以對應一個值的列表,形成鍵、值對的列表。

2) 對象的特性

對象跟數組很相似,唯一的區別是,它的鍵是自定義的;即對象的索引方式不再限于數字,也可以是類似變量名的鍵名,例如:firt_name, last_name, age等等。

例如,以下的簡單對象:

var hero = {
breed: ‘Turtles’,
occupation: ‘Ninja’
};

可以看到,對象hero有以下特征:

  • 用于表示對象的變量名hero;
  • 使用大括號{ }來定義對象;(與數組的方括號[ ]不同);
  • 括號中用逗號分隔的是組成該對象的元素(即屬性);
  • 鍵/值對之間用冒號分隔,像key: value的格式;

有時在鍵上加一對單引號或者雙引號,例如以下代碼,三行完全相同:

var hero = {occupation: 1};
var hero = {'occupation': 1};
var hero = {"occupation": 1};

如果屬性名為JavaScript的保留字之一,或者不符合變量命名規則,就必須為其添加一對引號。

3) 對象的屬性和方法

數組通常包含元素;而對象包含的是屬性

由于函數本身是一種數據,所以,對象的屬性也可以是函數;此時,我們稱該屬性為方法,用它來執行某種動作。
如下代碼:

var dog = {name: 'Johnson',talk: function () {return 'Woof, woof!';}
};
console.log(dog.name);
console.log(dog.talk());

執行結果如下圖所示:
在這里插入圖片描述
可以看出,console.log函數輸出了dog類其屬性name的值,也輸出了其方法talk()的值。

訪問對象屬性可以用上述的點表示法,例如:dog.name, 也可以用方括號表示法,例如:dog[‘name’].

那么, 對象中包含其它對象呢?如何表示其屬性?看以下代碼:

var book = {name: 'JavaScript Tutorial',published: 2021,author: {first_name: 'Amy',last_name: 'Antonio'}
};

如果想要輸出該對象的屬性對象author的屬性,則需要用“."方式來表示:

console.log(book.author.first_name);

或者用方括號:

console.log(book[‘author’][‘first_name’]);

執行結果如下圖所示:

在這里插入圖片描述

4) 修改屬性與方法

JavaScript允許隨時對現存的對象的屬性和方法進行修改,也包括添加與刪除屬性。

以下代碼先創建一個空的對象student。

var student = {};

接下來,添加一些屬性和方法:

var student = {};
student.name = "Leonardo";
student.sayName = function() {return student.name;
};
console.log(student.sayName());

輸出調用方法sayName(),執行結果如下圖所示:

在這里插入圖片描述
同樣,如果刪除了屬性,如下語句:

delete student.name;

然后,再調用該方法,就找不到被刪除的name屬性了,執行結果如下圖所示:
在這里插入圖片描述
結果變成undefined, 即屬性變量未發現。

5) 小結

對象和數組有相似之處,但是對象用大括號{ }包圍;對象中包含鍵值對,鍵可以是括號包含的特殊字符串,值可以是數字或字符串。

對象有屬性和方法。對象的屬性可以被增加、修改和刪除,訪問訪問屬性用點或者方括號。對象的方法可以用點方法被調用。

技術好文陸續推出,敬請關注。

喜歡就點贊哈,您的認可是我的動力。😊

相關閱讀:
  1. Javascript編程基礎 - 函數進階
  2. Javascript編程基礎 - 條件語句
  3. Javascript編程基礎 - 函數入門
  4. Javascript編程基礎 - 關鍵字Let, Const和Var的區別
  5. Javascript編程基礎 - 變量
  6. Javascript編程基礎 - 輸出
  7. 用Visual Studio Code運行JavaScript程序失敗的解決辦法
  8. 用Visual Studio Code搭建JavaScript開發環境
  9. 用CodePen實現JavaScript程序動態在線開發
  10. 在Jupyter Lab(Notebook)上安裝運行JavaScript應用程序

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162164.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162164.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162164.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淺談JDK動態代理(上)

作者簡介:大家好,我是smart哥,前中興通訊、美團架構師,現某互聯網公司CTO 聯系qq:184480602,加我進群,大家一起學習,一起進步,一起對抗互聯網寒冬 到目前為止&#xff0c…

Splunk 編寫高效 查詢語句

1: 背景: splunk 的查詢語句的是否優化,對是否節省資源有很大的影響。下面說一下大概的方法: There are a set of basic principles that you can follow to optimize your searches. Retrieve only the required data Move as little data as possible Parallelize as mu…

力扣OJ題講解——循環隊列

今天我們一起來做一道關于隊列的OJ題目,這是力扣題目622題,點擊題目鏈接可以直接跳轉,https://leetcode.cn/problems/design-circular-queue/ 首先,我們看到要求,需要我們實現哪些功能? 我們需要設置隊列長…

2023亞太杯數學建模A題B題C題選題建議,思路分析,模型代碼

目錄 ABC題思路模型代碼:獲取見文末名片,第一時間更新 視頻連接講解如上 A題思路:采果機器人的圖像識別技術思路模型代碼 B題思路:玻璃溫室中的微氣候法規 C題思路:我國新能源電動汽車的發展趨勢 ABC題思路模型代…

經典雙指針算法試題(二)

📘北塵_:個人主頁 🌎個人專欄:《Linux操作系統》《經典算法試題 》《C》 《數據結構與算法》 ??走在路上,不忘來時的初心 文章目錄 一、有效三角形的個數1、題目講解2、講解算法原理3、代碼實現 二、查找總價格為目標值的兩個商…

Excel使用技巧匯總

1 單元格內換行 altenter

Hutool

一、簡介 Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅 官方文檔: https://www.hutool.cn/docs/#/ 二、包含組件 一個Java基礎工具類,對文…

allegro畫封裝時使用坐標指令無效

使用坐標指令時顯示:“Pick is outside the extent of the drawing…pick again” 這是因為你放的引腳已經超出你這個繪制界面的定義尺寸,需要到Setup->Design pararmeters…里面去將圖幅改大一點,如下圖所示: 然后點擊Design…

消息中間件——RabbitMQ(三)理解RabbitMQ核心概念和AMQP協議!

前言 本章學習,我們可以了解到以下知識點: 互聯網大廠為什么選擇RabbitMQ?RabbiMQ的高性能之道是如何做到的?什么是AMQP高級協議?AMQP核心概念是什么?RabbitMQ整體架構模型是什么樣子的?Rabbi…

P8599 [藍橋杯 2013 省 B] 帶分數(dfs+全排列+斷點判斷)

思路&#xff1a;1.深度枚舉所有排列情況 2.設置為每個排列設置兩個斷點&#xff0c;分為三部分&#xff1a;a,b,c 3.轉換為乘法判斷條件&#xff0c;滿足加一 代碼如下&#xff1a;&#xff08;可用next_permutation全排列函數代替dfs&#xff09; #include<iostream>…

機器學習調參指南:提升模型性能的關鍵步驟

諸神緘默不語-個人CSDN博文目錄 文章目錄 1. 理解模型的參數和超參數2. 使用網格搜索進行超參數調優3. 隨機搜索4. 貝葉斯優化5. 使用交叉驗證避免過擬合6. 考慮正則化7. 調整學習率和其他優化器參數8. 實驗和記錄9. 模型的早停法10. 總結 在機器學習和深度學習的領域中&#x…

全面的日志監控管理工具

企業網絡由眾多日志源組成。集中監控這些日志源有助于防止數據威脅和網絡攻擊&#xff0c;綜合日志監控解決方案可以自動執行日志管理流程&#xff0c;通過關聯日志來識別惡意活動&#xff0c;并幫助滿足IT合規性要求。 不同類型的日志監控 EventLog Analyzer 綜合日志監控解…

智慧法院檔案數字化解決方案

智慧法院檔案數字化解決方案可以采用以下步驟&#xff1a; 1. 確定數字化目標&#xff1a;明確數字化的目標和范圍&#xff0c;比如將所有的案件相關文件、紙質檔案和材料進行數字化。 2. 確定數字化流程&#xff1a;制定數字化的流程和標準&#xff0c;比如采用哪些設備和軟件…

【Linux 文件傳輸系列 1.1 -- rsync 詳細介紹】

文章目錄 rsync 詳細介紹rsync 基本特性rsync 常用選項rsync 各種是使用示例 rsync 詳細介紹 rsync 是一個在 Linux 和 Unix 系統上廣泛使用的文件同步和傳輸工具。它被設計用于快速高效地同步文件和目錄之間的變化&#xff0c;不論是本地還是通過網絡。rsync 命令有許多選項&…

【C語言】qsort函數

目錄 簡介 頭文件 ?編輯 函數原型&#xff1a; 參數函數如何寫&#xff1a; 參數函數要求&#xff1a; qsort對整性數據的排序&#xff1a; qsort對字符型數據的排序&#xff1a; 對結構體類型的內部元素排序&#xff1a; 函數的底層是以快速排序實現的 但是本文不深入…

rxjs中combineLatest的用法

RxJS中的combineLatest操作符可以用于將多個Observable對象合并成一個新的Observable對象&#xff0c;新的Observable對象的值是由原始Observable對象的最新值組成的一個數組。當任何一個原始Observable對象發出新值時&#xff0c;新的Observable對象的值也會更新。 combineLa…

小黑子—Maven高級

Maven高級篇 二 小黑子的Maven高級篇學習1. 分模塊開發1.1 分模塊開發設計1.2 分模塊開發實現1.2.1 抽取domain層1.2.2 抽取dao層 2. 依賴管理2.1 依賴傳遞2.2 可選依賴2.3 排除依賴 3. 繼承與聚合3.1 聚合3.2 繼承3.3 總結 4. 屬性4.1 配置文件加載屬性4.2 版本管理 5. 多環境…

【開源】基于Vue.js的民宿預定管理系統

項目編號&#xff1a; S 058 &#xff0c;文末獲取源碼。 \color{red}{項目編號&#xff1a;S058&#xff0c;文末獲取源碼。} 項目編號&#xff1a;S058&#xff0c;文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 用例設計2.2 功能設計2.2.1 租客角色…

夢開始的地方——Adobe Premiere Pro

今天&#xff0c;我們來說說一款老生常談的相信也是很多人都經常迫切需要的軟件。Adobe Premiere Pro&#xff0c;簡稱Pr&#xff0c;是由Adobe公司開發的一款視頻編輯軟件。 Premiere Pro是視頻編輯愛好者和專業人士必不可少的視頻編輯工具。它可以提升您的創作能力和創作自由…

httpd(Web服務器)

名詞解釋 1、URL&#xff1a;Uniform Resource Locator&#xff0c;統?資源定位符 2、?址格式&#xff1a;<協議>://<主機或主機名>[:port]/<?錄資源,路徑> 3、主機地址/主機名&#xff1a;主機地址是服務器在因特?所在的IP地址。主機名就需要域名解析…