學習筆記整理-面向對象-01-認識對象

一、認識對象

1. 對象

  • 對象(object)是鍵值對的集合,表示屬性和值的映射關系

  • 對象的語法

    • k和v之間用冒號分割,每組k:v之間用逗號分割,最后一個k:v對后可以不書寫逗號。
  • 屬性是否加引號

    • 如果對象的屬性鍵名不符合命名規范,則這個鍵名必須用引號包裹。
         var xiaoming = {name: '小明',age: 12,'favorite-book': '三毛流浪記'}    
      
  • 屬性的訪問

    • 可以用點語法訪問對象中指定鍵的值。
    • 如果屬性名不符合JS標識符命名規范,則必須用方括號的寫法來訪問。
    • 如果屬性名以變量形式存儲,則必須使用方括號形式。
  • 屬性的更改

    • 直接使用賦值運算符重新對某屬性賦值即可更改屬性
  • 屬性的創建

    • 如果對象本身沒有某個屬性值,則用點語法賦值時,這個屬性會被創建出來
  • 屬性的刪除

    • 如果要刪除某個對象的屬性,需要使用delete操作符
         var obj = { a: 1, b: 2 }; delete obj.a;   
      

2. 對象方法

  • 如果某個屬性值是函數,則它也被稱為對象的"方法"

       var xiaoming = {name: '小明', age: 12, sex: '男', hobbys: ['足球', '游泳', '編程'], 'favorite-book': '舒克和貝塔', sayHello: function () {   // sayHello方法console.log('你好,我是小明,今年12歲,我是個男生');}};   
    
  • 使用"點語法"可以調用對象的方法

  • 方法和函數

    • 方法也是函數,只不過方法是對象的"函數屬性",它需要用對象打點調用。

3. 對象的遍歷

  • 和遍歷數組類似,對象也可以被遍歷,遍歷對象需要使用for...in...循環
  • 使用for...in...循環可以遍歷對象的每個
      for (var k in obj) { console.log('屬性' + k + '的值是' + obj[k]); }
    
    • 循環變量k,它會依次成為對象的每一個鍵。
    • obj要遍歷的對象。
    • obj[k]要遍歷的對象。

4. 對象的深淺克隆

  • 對象是引用類型值
    • 對象是引用類型值,這意味著:
      • 不能用var obj2 = obj1這樣的語法克隆一個對象。
      • 使用==或者===進行對象的比較時,比較的是它們是否為內存中的同一個對象,而不是比較值是否相同。
  • 對象的淺克隆
    • 淺克隆:只克隆對象的"表層",如果對象的某 些屬性值又是引用類型值,則不進一步克隆它們,只是傳遞 它們的引用
    • 使用for...in...循環即可實現對象的淺克隆
  • 對象的深克隆
    • 深克隆:克隆對象的全貌,不論對象的屬性值是 否又是引用類型值,都能將它們實現克隆。
    • 和數組的深克隆類似,對象的深克隆需要使用遞歸。

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

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

相關文章

數組slice、splice字符串substr、split

一、定義 這篇文章主要對數組操作的兩種方法進行介紹和使用,包括:slice、splice。對字符串操作的兩種方法進行介紹和使用,包括:substr、split (一)、數組 slice:可以操作的數據類型有:數組字符串 splice:數組 操作數組…

一個基礎但全面的Vue的表單范例,很基礎,但是很容易,也很全面。

下面這個案例,路人朋友們可以直接粘貼到html文件類型中運行,注意引入Vuejs的路徑即可,不會改的可以參考我第一篇Vue入門,同時建議同志們手打,真的前端都不能熟能生巧,既不要編程了, 可以詳細看注…

計算機網絡-物理層(一)物理層的概念與傳輸媒體

計算機網絡-物理層(一)物理層的概念與傳輸媒體 物理層相關概念 物理層的作用用來解決在各種傳輸媒體上傳輸比特0和1的問題,進而為數據鏈路層提供透明(看不見)傳輸比特流的服務物理層為數據鏈路層屏蔽了各種傳輸媒體的差異,使數據…

最新Kali Linux安裝教程:從零開始打造網絡安全之旅

Kali Linux,全稱為Kali Linux Distribution,是一個操作系統(2013-03-13誕生),是一款基于Debian的Linux發行版,基于包含了約600個安全工具,省去了繁瑣的安裝、編譯、配置、更新步驟,為所有工具運行提供了一個…

[低端局][cx32L003] 移植U8G2

文章目錄 一、簡介(1)U8g2(2)U8x8 二、配置要求三、移植步驟(1)文件準備和添加(2)實現回調接口(I2C的讀寫函數)①軟件I2C②硬件I2C (3)功能裁剪① u8g2_d_set…

Gof23設計模式之模板方法模式

1.定義 定義一個操作中的算法骨架,而將算法的一些步驟延遲到子類中,使得子類可以不改變該算法結構的情況下重定義該算法的某些特定步驟。 2.結構 模板方法(Template Method)模式包含以下主要角色: 抽象類&#xff0…

Kerberos 重新認識 From Oracle安全

參考 https://docs.oracle.com/cd/E24847_01/html/819-7061/seamtm-1.html#scrolltoc Kerberos服務 Kerberos服務是一種網絡身份認證協議,由麻省理工學院(MIT)開發。它提供了強大的身份驗證功能,用于在計算機網絡中驗證用戶和服務…

買愛心氣球(nim博弈)

鏈接:登錄—專業IT筆試面試備考平臺_牛客網 來源:牛客網 Alice 和 Bob 是一對競技編程選手,他們路過了一家氣球店,發現有 m 個大愛心氣球和 n個小愛心氣球。他們決定玩一個游戲,游戲規則如下: Alice先手拿…

Python Selenium 設置帶賬號密碼的socks5代理,啟動瀏覽器

selenium添加帶有賬密的socks5代理 我們都知道在使用selenium開發爬蟲的時候不可避免的會使用socks5高匿名代理。一般情況下我們使用方法如下(開發語言為python): from selenium import webdriver chrome_options webdriver.ChromeOptions() chrome_options.add_…

Java并發之ReentrantLock

AQS AQS(AbstractQueuedSynchronizer):抽象隊列同步器,是一種用來構建鎖和同步器的框架。在是JUC下一個重要的并發類,例如:ReentrantLock、Semaphore、CountDownLatch、LimitLatch等并發都是由AQS衍生出來…

React Native Expo項目,復制文本到剪切板

裝包: npx expo install expo-clipboard import * as Clipboard from expo-clipboardconst handleCopy async (text) > {await Clipboard.setStringAsync(text)Toast.show(復制成功, {duration: 3000,position: Toast.positions.CENTER,})} 參考鏈接&#xff1a…

3.文件目錄

第四章 文件管理 3.文件目錄 ? ??對于D盤這個根目錄來說它對應的目錄文件就是圖中的樣子,其實就是用一個所謂的目錄表來表示這個目錄下面存放了哪些東西。在D盤中的每一個文件,每一個文件夾都會對應這個目錄表中的一個表項,所以其實這些一…

如何寫簡歷?

寫程序員簡歷時,可以從以下幾個方面入手: 1. 個人信息:在簡歷的開頭,包含個人基本信息如姓名、聯系方式、地址等。 2. 求職目標/職業目標:明確自己希望得到的職位或行業,并簡要描述為什么適合該職位。 3…

Autoware感知02—歐氏聚類(lidar_euclidean_cluster_detect)源碼解析

文章目錄 引言一、點云回調函數:二、預處理(1)裁剪距離雷達過于近的點云,消除車身的影響(2)點云降采樣(體素濾波,默認也是不需要的)(3)裁剪雷達高…

【概念篇】文件概述

?作者簡介:大家好,我是小楊 📃個人主頁:「小楊」的csdn博客 🐳希望大家多多支持🥰一起進步呀! 文件概述 1,文件的概念 狹義上的文件是計算機系統中用于存儲和組織數據的一種數據存…

React源碼解析18(5)------ 實現函數組件【修改beginWork和completeWork】

摘要 經過之前的幾篇文章,我們實現了基本的jsx,在頁面渲染的過程。但是如果是通過函數組件寫出來的組件,還是不能渲染到頁面上的。 所以這一篇,主要是對之前寫得方法進行修改,從而能夠顯示函數組件,所以現…

【深度學習】NLP中的對抗訓練

在NLP中,對抗訓練往往都是針對嵌入層(包括詞嵌入,位置嵌入,segment嵌入等等)開展的,思想很簡單,即針對嵌入層添加干擾,從而提高模型的魯棒性和泛化能力,下面結合具體代碼…

Spark 學習記錄

基礎 SparkContext是什么?有什么作用? https://blog.csdn.net/Shockang/article/details/118344357 SparkContext 是什么? SparkContext 是通往 Spark 集群的唯一入口,可以用來在 Spark 集群中創建 RDDs 、累加和廣播變量( Br…

【數據庫基礎】Mysql下載安裝及配置

下載 下載地址:https://downloads.mysql.com/archives/community/ 當前最新版本為 8.0版本,可以在Product Version中選擇指定版本,在Operating System中選擇安裝平臺,如下 安裝 MySQL安裝文件分兩種 .msi和.zip [外鏈圖片轉存失…

C++11時間日期庫chrono的使用

chrono是C11中新加入的時間日期操作庫,可以方便地進行時間日期操作,主要包含了:duration, time_point, clock。 時鐘與時間點 chrono中用time_point模板類表示時間點,其支持基本算術操作;不同時鐘clock分別返回其對應…