javascript有哪些創(chuàng)建對象的方法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
公司主營業(yè)務(wù):網(wǎng)站設(shè)計制作、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出遵義免費做網(wǎng)站回饋大家。
方法是:1、使用內(nèi)置對象,JavaScript語言原生對象或運行期的宿主對象;2、使用JSON符號,采用簡單的“鍵/值對”的集合或是有序的值列表;3、自定義對象構(gòu)造,使用“this”關(guān)鍵字或使用原型prototype進行構(gòu)造。
一、使用內(nèi)置對象
JavaScript可用的內(nèi)置對象可分為兩種:
1,JavaScript語言原生對象(語言級對象),如String、Object、Function等;
2,JavaScript運行期的宿主對象(環(huán)境宿主級對象),如window、document、body等。
我們所說的使用內(nèi)置對象,是指通過JavaScript語言原生對象的構(gòu)造方法,實例化出一個新的對象。如:
var str = new String("實例初始化String"); var str1 = "直接賦值的String"; var func = new Function("x","alert(x)");//示例初始化 func var o = new Object();//示例初始化一個Object
二、使用JSON符號
(i)何謂JSON ?
JSON (JavaScript Object Notation)即JavaScript對象命名,是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫,同時也易于及其解析和生成。它基于《JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999》的一個子集。JSON是完全獨立于語言的文本格式,因此成為數(shù)據(jù)交換的理想格式。
JSON作為JavaScript的一個自己,同時ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等一系列的語言都提供支持,使得JSON成為Ajax開發(fā)的首選方案。
JSON有兩種構(gòu)建方式,一種是采用簡單的“鍵/值對”的集合,在不同的語言中被理解為對象、記錄、結(jié)構(gòu)、字典、哈希表、有鍵列表,或者關(guān)聯(lián)數(shù)組等,另一種采用有序的值列表,大部分語言把它理解為數(shù)組。
常用的創(chuàng)建方式是第一種,即采用“鍵/值對”集合的形式。在這種形式下,一個對象以“{”(左括號)開始,“}”(右括號)結(jié)束。每個“名稱”后跟一個“:”(冒號),“ ‘鍵/值' 對”之間使用“,”(逗號)分隔。
JSON具有以下特點:(1)簡單格式化的數(shù)據(jù)交換;(2)易于人們的讀寫習(xí)慣;(3)易于機器的分析和運行。
在JavaScript中,JSON被理解為對象。通過字符串形式的JSON,數(shù)據(jù)可以很方便地解析成JavaScript獨享,并進行數(shù)據(jù)的讀取傳遞。通過JSON,在一定程度上客服了JavaScript對象無法作為參數(shù)系列化傳遞的問題。
1,簡單的JSON
{name:"劉德華",age:"25",sex:"男"}
2,JSON值的類型
JSON的值可以是簡單的數(shù)據(jù)類型,例如數(shù)字、浮點、字符等,也可以是數(shù)組及對象。例如以數(shù)組作為member鍵值的JSON:
{member:[{name:"劉德華"},{name:"郭富城"},{name:"張學(xué)友"},{name:"黎明"}]}
{ book:[{name:"三國演義"},{name:"西游記"},{name:"水滸傳"},{name:"紅樓夢"}], author:[{name:"羅貫中"},{name:"吳承恩"},{name:"施耐安",{name:"曹雪芹"}}] }
3,在JavaScript中使用JSON
JSON是JavaScript原生格式,這意味著在JavaScript中處理JSON數(shù)據(jù)不需要任何特殊的API或者工具包,JavaScript默認(rèn)將JSON當(dāng)做一個對象處理。
將對象傳遞給一個變量,例如:
var somebooks = { book:[{name:"三國演義"},{name:"西游記"},{name:"水滸傳"},{name:"紅樓夢"}], author:[{name:"羅貫中"},{name:"吳承恩"},{name:"施耐安",{name:"曹雪芹"}}] }
JSON的每個“鍵”相當(dāng)于對象的屬性,例如訪問book中的第一個條目,在JavaScript中,就可以簡單地使用“somebooks.book[0].name”來獲取“三國演義”這個值。
我們不但可以將一個JSON字符串轉(zhuǎn)化為對象,反過來將一個對象“編譯”為一個JSON字符串,以方便JavaScript中的對象的傳輸。例如:
var Animals = new Object(); Animals.name = "dog"; Animals.sex = "Male"; Animals.age = "2";
Animals對象無法被序列化傳輸,將Animals對象轉(zhuǎn)化為JSON字符串,也就是“{name:"dog",sex:"Male",age:"2"}”。這樣,把該JSON字符串作為HTTP請求的一個參數(shù)傳遞,從而達到序列化傳輸Animals對象的目的。
(ii)JSON通過字符串形式來表達JavaScript的對象。如:
var myObject = {nickname:"my girlfried",name:"big pig"};
JSON實際上充當(dāng)了一種在JavaScript對象和字符串之間實現(xiàn)相互轉(zhuǎn)換的協(xié)議。由于JSON的“外表”可以看成但村的字符串,因此JSON在JavaScript的對象傳輸方面可以起到一定的作用。例如把對象strObject轉(zhuǎn)換成字符串后進行傳輸,在達到目的地后通過eval方法將其還原成對象:
function test (o) { alert (o.name) } var strObject = '{nickname:"my girlfriend",name:"big pig"}'; test (eval("(" + strObject + ")"));
三、自定義對象構(gòu)造
創(chuàng)建高級對象構(gòu)造有兩種方式:使用“this”關(guān)鍵字構(gòu)造、使用原型prototype構(gòu)造。如:
//使用this關(guān)鍵字定義構(gòu)造的上下文屬性 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);
上例中的兩種定義在本質(zhì)上沒有區(qū)別,都是定義“Girl”對象的屬性信息?!皌his”與“prototype”的區(qū)別主要在于屬性訪問的順序。如:
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”
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。