在JavaScript開發中使用js物件是很常見的,而我們要如何去創建js物件呢,方法有多種,那麼我們今天就來講講多種創建js物件的方法吧
JavaScript中物件的建立有以下幾種方式:
#使用內建物件
使用JSON符號
自訂物件建構
#一、使用內建物件
#JavaScript可用的內建物件可分為兩種:
1,JavaScript語言原生物件(語言層級物件),如String、Object、Function等;
2,JavaScript執行階段的宿主物件(環境宿主級物件),如window、document、body等。
我們所謂的使用內建對象,是指透過JavaScript語言原生物件的建構方法,實例化出一個新的物件。如:
var str = new String("实例初始化String"); var str1 = "直接赋值的String"; var func = new Function("x","alert(x)");//示例初始化func var o = new Object();//示例初始化一个Object
二、使用JSON符號
何謂JSON ?
JSON (JavaScript Object Notation)即JavaScript物件命名,是一種輕量級的資料交換格式,易於閱讀和編寫,同時也易於及其解析和生成。它是基於《JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999》的子集。 JSON是完全獨立於語言的文字格式,因此成為資料交換的理想格式。
JSON作為JavaScript的一個自己,同時ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等一系列的語言都提供支持,使得JSON成為Ajax開發的首選方案。
JSON有兩種建構方式,一種是採用簡單的「鍵/值對」的集合,在不同的語言中被理解為物件、記錄、結構、字典、雜湊表、有鍵列表,或關聯數組等,另一種採用有序的值列表,大部分語言把它理解為數組。
常用的創建方式是第一種,即採用「鍵/值對」集合的形式。在這種形式下,一個物件以「{」(左括號)開始,「}」(右括號)結束。每個“名稱”後面跟著一個“:”(冒號),“ ‘鍵/值' 對”之間使用“,”(逗號)分隔。
JSON有以下特點:
簡單格式化的資料交換;
易於人們的讀寫習慣;
易於機器的分析與運作。
在JavaScript中,JSON被理解為物件。透過字串形式的JSON,資料可以很方便地解析成JavaScript獨享,並進行資料的讀取傳遞。透過JSON,在某種程度上客服了JavaScript物件無法作為參數系列化傳遞的問題。
1,簡單的JSON
{name:"刘德华",age:"25",sex:"男"}
2,JSON值的型別
JSON的值可以是簡單的資料型別,例如數字、浮點、字元等,也可以是陣列及物件。例如以陣列作為member鍵值的JSON:
{member:[{name:"刘德华"},{name:"郭富城"},{name:"张学友"},{name:"黎明"}]} { book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] }
3,在JavaScript中使用JSON
JSON是JavaScript原生格式,這表示在JavaScript中處理JSON資料不需要任何特殊的API或工具包,JavaScript預設將JSON當作一個物件處理。
將物件傳遞給一個變量,例如:
var somebooks = { book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] }
JSON的每個「鍵」相當於物件的屬性,例如存取book中的第一個條目,在JavaScript中,就可以簡單地使用「somebooks.book[0].name」來取得「三國演義」這個值。
我們不但可以將一個JSON字串轉換為對象,反過來將一個物件「編譯」為一個JSON字串,以方便JavaScript中的物件的傳輸。例如:
var Animals = new Object(); Animals.name = "dog"; Animals.sex = "Male"; Animals.age = "2";
Animals物件無法被序列化傳輸,將Animals物件轉換為JSON字串,也就是「{name:"dog",sex:"Male",age:"2" }」。這樣,把該JSON字串當作HTTP請求的一個參數傳遞,從而達到序列化傳輸Animals物件的目的。
JSON透過字串形式來表達JavaScript的物件。如:
var myObject = {nickname:"my girlfried",name:"big pig"};
JSON實際上充當了一種在JavaScript物件和字串之間實現相互轉換的協定。由於JSON的「外表」可以看成但村的字串,因此JSON在JavaScript的物件傳輸方面可以起到一定的作用。例如把物件strObject轉換成字串後進行傳輸,在達到目的地後透過eval方法將其還原成物件:
function test (o) { alert (o.name) } var strObject = '{nickname:"my girlfriend",name:"big pig"}'; test (eval("(" + strObject + ")"));
三、自定义对象构造
创建高级对象构造有两种方式:使用“this”关键字构造、使用原型prototype构造。如:
//使用this关键字定义构造的上下文属性 function Girl() { this.name = "big pig"; this.age = 20; this.standing; this.bust; this.waist; this.hip; } //使用prototype function Girl(){} Girl.prototype.name = "big pig"; Girl.prototype.age = 20; Girl.prototype.standing; Girl.prototype.bust; Girl.prototype.waist; Girl.prototype.hip; alert(new Girl().name);
上例中的两种定义在本质上没有区别,都是定义“Girl”对象的属性信息。“this”与“prototype”的区别主要在于属性访问的顺序。如:
function Test() { this.text = function() { alert("defined by this"); } } Test.prototype.test = function() { alert("defined by prototype"); } var _o = new Test(); _o.test();//输出“defined by this”
当访问对象的属性或者方法是,将按照搜索原型链prototype chain的规则进行。首先查找自身的静态属性、方法,继而查找构造上下文的可访问属性、方法,最后查找构造的原型链。
“this”与“prototype”定义的另一个不同点是属性的占用空间不同。使用“this”关键字,示例初始化时为每个实例开辟构造方法所包含的所有属性、方法所需的空间,而使用“prototype”定义,由于“prototype”实际上是指向父级的一种引用,仅仅是个数据的副本,因此在初始化及存储上都比“this”节约资源。
相关推荐:
在js语言中,一切都对象”,而且创建对象的方式也有很多种,所以今天我们做一下梳理最简单
以上是多種創建js物件的方法詳細講述的詳細內容。更多資訊請關注PHP中文網其他相關文章!

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器