# JavaScript 對象

来源:https://www.cnblogs.com/chichi0002/archive/2022/09/03/16651906.html
-Advertisement-
Play Games

JavaScript 對象 對象 在JavaScript中,對象是一組無序的相關屬性和方法的集合,所有的事物都是對象,例如字元串、數值、數組、函數等。 對象是由屬性和方法組成的。 屬性:事物的特征,在對象中用屬性來表示(常用名詞) 方法:事物的行為,在對象中用方法來表示(常用動詞) 保存一個值時,可 ...


目錄

JavaScript 對象

對象

在JavaScript中,對象是一組無序的相關屬性方法的集合,所有的事物都是對象,例如字元串、數值、數組、函數等。
對象是由屬性方法組成的。

  • 屬性:事物的特征,在對象中用屬性來表示(常用名詞)
  • 方法:事物的行為,在對象中用方法來表示(常用動詞)

保存一個值時,可以使用變數,保存多個值(一組值)時,可以使用數組,保存一個人的完整信息時可使用對象。

創建對象(object)的三種方式

1.利用字面量創建對象
對象字面量就是花括弧{ }裡面包含了表達這個具體事物(對象)的屬性和方法。

  • 鍵:相當於屬性名
  • 值:相當於屬性值,可以是任意類型的值(數字類型、字元類型、布爾類型、函數類型)

對象的調用

  • 對象裡面的屬性調用:對象名.屬性名 ,這個小點,可理解為“的”
  • 對象裡面屬性的另一種調用方式:對象名['屬性名'],註意方括弧裡面的屬性必須加引號
  • 對象裡面的方法調用:對象名.方法名(),註意方法名字後面一定加括弧
//1.利用字面量創建對象{ }
//var obj = { };創建了一個空的對象
var obj = {          
    // { }裡面的屬性或者方法採取鍵值對的形式 鍵(屬性名):值(屬性值)
	name: '張三',
	age: '18',     // 多個屬性或者方法之間用逗號隔開
	sex: '男',
	sayHi: function(){ // 方法後面跟的是一個匿名函數
		console.log('hi~');
	}
}
//使用對象
// 調用對象的屬性
console.log(obj.name); // 第一種方法  對象名.屬性名
console.log(obj['age']); // 第二種方法  對象名['屬性名']
obj.sayHi(); // 第三種方法  調用對象的方法 sayHi 對象名.方法名() 需要添加小括弧

2.利用new Object 創建對象

//利用new Object 創建對象
var obj = new Object(); // 創建了一個空對象
obj.name = '張三';
obj.age = 18;    // 利用等號 = 賦值的方法,添加對象的屬性和方法
obj.sex = '男';	// 每個屬性和方法之間用 分號 結束
obj.sayHi = function(){
	console.log('hi~');
}
console.log(obj.name);
console.log(obj['sex']);
obj.sayHi();

3.利用構造函數創建對象
因為前面兩種創建對象的方式一次只能創建一個對象,一次創建一個對象,裡面有很多的屬性和方法是大量相同的,因此可以利用函數的方法,重覆這些相同代碼,我們將這個函數稱為 ——構造函數 ,這個函數裡面封裝的不是普通的代碼,而是對象。

構造函數就是把對象裡面一些相同的屬性和方法抽象出來封裝到函數裡面。

//語法格式
//function 構造函數名(){
//	this.屬性 = 值;
//	this.方法 = function() { }
//}
//new 構造函數名();

// 構造函數 明星 泛指的某一大類 類似於java語言中的 類(class)
function Star(uname, age, sex){  // 構造函數首字母要大寫
	this.name = uname;
	this.age = age;
	this.sex = sex;
	this.sing = function(sang) { // 屬性和方法前面必須添加 this
		consloe.log(sang);
	}
}

// 調用構造函數必須使用 new
// 對象 特指是一個具體的事物 劉德華 == {name: "劉德華", age:18, sex:"男", sing:f}
var ldh = new Star('劉德華',18,'男'); // 調用函數返回的是一個對象
console.log(ldh.name);
console.log(ldh['sex']);
ldh.sing('忘情水');

var zxy = new Star('張學友',28,'男');
console.log(zxy.name);
console.log(zxy.age);
zxy.sing('吻別');

對象的實例化利用構造函數創建對象的過程

new關鍵字

new在執行時會做的四件事情:
1.new的出現,會讓構造函數在記憶體中創建一個新的空對象
2.this就是指向這個新的對象
3.執行構造函數裡面的代碼,給空對象添加屬性和方法
4.返回這個新對象(所以構造函數裡面不需要return)

遍歷對象屬性(for in)

//遍歷對象
var obj ={
	name: '劉德華',
	age: 18',
	aex: '男',
}
for(var k in obj){ // for in 裡面的變數通常寫 k 或者 key
	conlose.log(k); // k 變數 輸出 得到的是 屬性名(name age sex)
	conlose.log(obj[k]); // obj[k]得到的是屬性值(劉德華 18 男)
}


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

-Advertisement-
Play Games
更多相關文章
  • 首先先來瞭解一下TMC5160的3種工作模式 TMC5160通過兩個引腳來控制它的工作模式:SD_MODE和SPI_MODE。 1、當SD_MODE接地,SPI_MODE拉高,TMC5160即工作在模式1(SPI控制模式)。在該模式下,用戶通過SPI介面來設置TMC5160的寄存器。 TMC5160 ...
  • 觀前提示 此處假定你已經安裝好Windows,並且能夠看懂英語。 下載Ubuntu 這裡 不同於一般推薦於英文官網下載,此處建議在中文官網下載。這樣可以利用Ubuntu在國內架設的鏡像,也方便日後使用apt-get等工具安裝軟體。(實際作者並不清楚安裝時是否會自動測試鏡像列表) 即使使用國內官方鏡像 ...
  • 以下介紹項目中的startup和ld文件, 以及HC32L110的啟動機制, 因為是面向 GCC Arm Embedded 工具鏈的版本, 所以 startup 代碼和 ld 連接描述腳本都依據 GCC Arm 工具鏈的格式. ...
  • ClickHouse屬於分析型資料庫,ClickHouse提供了許多數據類型,它們可以劃分為基礎類型、複合類型和特殊類型。其中基礎類型使ClickHouse具備了描述數據的基本能力,而另外兩種類型則使ClickHouse的數據表達能力更加豐富立體。 基礎類型 基礎類型只有數值、字元串和時間三種類型, ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 一. XDP Socket示例解析 源碼參見:https://github.com/xdp-project/xdp-tutorial/tree/mast ...
  • 我的另一篇博文中提到JavaScript 有哪些是假值,哪些是真值。對於 null、undefined、"",等一些假值,JavaScript 直接視為 false。 我有一個需求,判斷從瀏覽器中獲取的 Cookie 是否存在,如果存在我就返回 true,否則返回 false。useCookies( ...
  • 每日 3 題 13 以下代碼執行後,控制臺中的輸出內容為? Object.prototype.a = 1; Function.prototype.b = 2; function F() {} var f = new F(); console.log(F.a); console.log(F.b); c ...
  • Array.apply(null, { length: 1000 }) 點擊打開視頻講解更加詳細 在閱讀VueJS教程時有這麼段demo code: render: function (createElement) { return createElement('div', Array.apply( ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...