一、使用內(nèi)置對(duì)象 JavaScript可用的內(nèi)置對(duì)象可分為兩種: 1,JavaScript語言原生對(duì)象(語言級(jí)對(duì)象),如String、Object、Function等; 2,Ja " /> 亚洲视屏一区,成人免费福利视频,婷婷激情狠狠综合五月

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

JavaScript 三種創(chuàng)建對(duì)象的方法

JavaScript中對(duì)象的創(chuàng)建有以下幾種方式:
(1)使用內(nèi)置對(duì)象
(2)使用JSON符號(hào)
(3)自定義對(duì)象構(gòu)造

一、使用內(nèi)置對(duì)象

JavaScript可用的內(nèi)置對(duì)象可分為兩種:
1,JavaScript語言原生對(duì)象(語言級(jí)對(duì)象),如String、Object、Function等;
2,JavaScript運(yùn)行期的宿主對(duì)象(環(huán)境宿主級(jí)對(duì)象),如window、document、body等。

我們所說的使用內(nèi)置對(duì)象,是指通過JavaScript語言原生對(duì)象的構(gòu)造方法,實(shí)例化出一個(gè)新的對(duì)象。如:
復(fù)制代碼 代碼如下:
var str = new String("實(shí)例初始化String");
var str1 = "直接賦值的String";
var func = new Function("x","alert(x)");//示例初始化func
var o = new Object();//示例初始化一個(gè)Object

二、使用JSON符號(hào)

(i)何謂JSON ?
JSON (JavaScript Object Notation)即JavaScript對(duì)象命名,是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫,同時(shí)也易于及其解析和生成。它基于《JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999》的一個(gè)子集。JSON是完全獨(dú)立于語言的文本格式,因此成為數(shù)據(jù)交換的理想格式。

JSON作為JavaScript的一個(gè)自己,同時(shí)ActionScript、C、C#、ColdFusion、E、JavaJavaScript、ML、ObjectiveCAML、Perl、phpPython、Rebol、Ruby、Lua等一系列的語言都提供支持,使得JSON成為Ajax開發(fā)的首選方案。

JSON有兩種構(gòu)建方式,一種是采用簡(jiǎn)單的“鍵/值對(duì)”的集合,在不同的語言中被理解為對(duì)象、記錄、結(jié)構(gòu)、字典、哈希表、有鍵列表,或者關(guān)聯(lián)數(shù)組等,另一種采用有序的值列表,大部分語言把它理解為數(shù)組。

常用的創(chuàng)建方式是第一種,即采用“鍵/值對(duì)”集合的形式。在這種形式下,一個(gè)對(duì)象以“{”(左括號(hào))開始,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào)),“ ‘鍵/值' 對(duì)”之間使用“,”(逗號(hào))分隔。

JSON具有以下特點(diǎn):(1)簡(jiǎn)單格式化的數(shù)據(jù)交換;(2)易于人們的讀寫習(xí)慣;(3)易于機(jī)器的分析和運(yùn)行。
JavaScript中,JSON被理解為對(duì)象。通過字符串形式的JSON,數(shù)據(jù)可以很方便地解析成JavaScript獨(dú)享,并進(jìn)行數(shù)據(jù)的讀取傳遞。通過JSON,在一定程度上客服了JavaScript對(duì)象無法作為參數(shù)系列化傳遞的問題。

1,簡(jiǎn)單的JSON

{name:"劉德華",age:"25",sex:"男"}

2,JSON值的類型

JSON的值可以是簡(jiǎn)單的數(shù)據(jù)類型,例如數(shù)字、浮點(diǎn)、字符等,也可以是數(shù)組及對(duì)象。例如以數(shù)組作為member鍵值的JSON:

{member:[{name:"劉德華"},{name:"郭富城"},{name:"張學(xué)友"},{name:"黎明"}]}

{
book:[{name:"三國演義"},{name:"西游記"},{name:"水滸傳"},{name:"紅樓夢(mèng)"}],
author:[{name:"羅貫中"},{name:"吳承恩"},{name:"施耐安",{name:"曹雪芹"}}]
}

3,在JavaScript中使用JSON

JSON是JavaScript原生格式,這意味著在JavaScript中處理JSON數(shù)據(jù)不需要任何特殊的API或者工具包,JavaScript默認(rèn)將JSON當(dāng)做一個(gè)對(duì)象處理。

將對(duì)象傳遞給一個(gè)變量,例如:
復(fù)制代碼 代碼如下:
var somebooks = {
book:[{name:"三國演義"},{name:"西游記"},{name:"水滸傳"},{name:"紅樓夢(mèng)"}],
author:[{name:"羅貫中"},{name:"吳承恩"},{name:"施耐安",{name:"曹雪芹"}}]
}

JSON的每個(gè)“鍵”相當(dāng)于對(duì)象的屬性,例如訪問book中的第一個(gè)條目,在JavaScript中,就可以簡(jiǎn)單地使用“somebooks.book[0].name”來獲取“三國演義”這個(gè)值。

我們不但可以將一個(gè)JSON字符串轉(zhuǎn)化為對(duì)象,反過來將一個(gè)對(duì)象“編譯”為一個(gè)JSON字符串,以方便JavaScript中的對(duì)象的傳輸。例如:
復(fù)制代碼 代碼如下:
var Animals = new Object();
Animals.name = "dog";
Animals.sex = "Male";
Animals.age = "2";

Animals對(duì)象無法被序列化傳輸,將Animals對(duì)象轉(zhuǎn)化為JSON字符串,也就是“{name:"dog",sex:"Male",age:"2"}”。這樣,把該JSON字符串作為HTTP請(qǐng)求的一個(gè)參數(shù)傳遞,從而達(dá)到序列化傳輸Animals對(duì)象的目的。

(ii)JSON通過字符串形式來表達(dá)JavaScript的對(duì)象。如:
復(fù)制代碼 代碼如下:
var myObject = {nickname:"my girlfried",name:"big pig"};

JSON實(shí)際上充當(dāng)了一種在JavaScript對(duì)象和字符串之間實(shí)現(xiàn)相互轉(zhuǎn)換的協(xié)議。由于JSON的“外表”可以看成但村的字符串,因此JSON在JavaScript的對(duì)象傳輸方面可以起到一定的作用。例如把對(duì)象strObject轉(zhuǎn)換成字符串后進(jìn)行傳輸,在達(dá)到目的地后通過eval方法將其還原成對(duì)象:
復(fù)制代碼 代碼如下:
function test (o)
{
alert (o.name)
}
var strObject = '{nickname:"my girlfriend",name:"big pig"}';
test (eval("(" + strObject + ")"));

三、自定義對(duì)象構(gòu)造

創(chuàng)建高級(jí)對(duì)象構(gòu)造有兩種方式:使用“this”關(guān)鍵字構(gòu)造、使用原型prototype構(gòu)造。如:
復(fù)制代碼 代碼如下:
//使用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”對(duì)象的屬性信息。“this”與“prototype”的區(qū)別主要在于屬性訪問的順序。如:
復(fù)制代碼 代碼如下:
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”

當(dāng)訪問對(duì)象的屬性或者方法是,將按照搜索原型鏈prototype chain的規(guī)則進(jìn)行。首先查找自身的靜態(tài)屬性、方法,繼而查找構(gòu)造上下文的可訪問屬性、方法,最后查找構(gòu)造的原型鏈。

“this”與“prototype”定義的另一個(gè)不同點(diǎn)是屬性的占用空間不同。使用“this”關(guān)鍵字,示例初始化時(shí)為每個(gè)實(shí)例開辟構(gòu)造方法所包含的所有屬性、方法所需的空間,而使用“prototype”定義,由于“prototype”實(shí)際上是指向父級(jí)的一種引用,僅僅是個(gè)數(shù)據(jù)的副本,因此在初始化及存儲(chǔ)上都比“this”節(jié)約資源。

JavaScript技術(shù)JavaScript 三種創(chuàng)建對(duì)象的方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 玖玖免费 | www.毛片网站 | 日本精品久久久一区二区三区 | 日韩看片| 国产中文字幕乱人伦在线观看 | 国产激情在线视频 | 成年人免费在线视频观看 | 91精品福利老司机在线观看 | 色五月情 | 精品一区二区三区的国产在线观看 | 一道本一区二区三区 | 久久青草免费91线频观看站街 | 91麻豆国产在线 | 国产成人ay手机在线观看 | 黄色美女网站免费看 | 最新激情网址 | 国产精久久一区二区三区 | 欧美日韩亚洲另类 | 国产精品视频一区二区三区小说 | 亚色国产 | 国产精品自产拍在线观看 | 一区二区在线观看视频在线 | 91免费永久在线地址 | 亚洲国产欧美国产第一区二区三区 | 色婷婷一区二区三区四区成人网 | 欧美性xxxx人妖 | 激情综合网婷婷 | 91精品国产免费 | 欧美激性欧美激情在线 | 久久久精品一区 | 精品久久久久久综合日本 | 成人黄网大全在线观看 | 亚洲欧美在线精品一区二区 | 日本欧美一二三区色视频 | xxxxx网| 香蕉草草久在视频在线播放 | 日韩视频免费 | 色婷五月 | 91精品国产麻豆国产自产在线 | 国产永久免费高清在线观看视频 | 亚洲一区二区三区免费在线观看 |