ECMA-262 把對象(object)定義為“屬性的無序集合,每個(gè)屬性存放一個(gè)原始值、對象或函數(shù)”。嚴(yán)格來說,這意味著對象是無特定順序的值的數(shù)組。
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括海陵網(wǎng)站建設(shè)、海陵網(wǎng)站制作、海陵網(wǎng)頁制作以及海陵網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,海陵網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到海陵省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
面向?qū)ο笳Z言的要求
一種面向?qū)ο笳Z言需要向開發(fā)者提供四種基本能力:
對象的創(chuàng)建和銷毀都在 JavaScript 執(zhí)行過程中發(fā)生,理解這種范式的含義對理解整個(gè)語言至關(guān)重要。
JavaScript 中的所有事物都是對象:字符串、數(shù)值、數(shù)組、函數(shù)...
此外,JavaScript 允許自定義對象。
JavaScript 對象
JavaScript 提供多個(gè)內(nèi)建對象,比如 String、Date、Array 等等。
對象只是帶有屬性和方法的特殊數(shù)據(jù)類型。
訪問對象的屬性
屬性是與對象相關(guān)的值。
訪問對象屬性的語法是:
objectName.propertyName
這個(gè)例子使用了 String 對象的 length 屬性來獲得字符串的長度:
var message="Hello World!"; var x=message.length; // 12
訪問對象的方法
方法是能夠在對象上執(zhí)行的動(dòng)作。
您可以通過以下語法來調(diào)用方法:
objectName.methodName()
這個(gè)例子使用了 String 對象的 toUpperCase() 方法來將文本轉(zhuǎn)換為大寫:
var message="Hello world!"; var x=message.toUpperCase(); // HELLO WORLD!
創(chuàng)建 JavaScript 對象
通過 JavaScript,您能夠定義并創(chuàng)建自己的對象。
創(chuàng)建新對象有兩種不同的方法:
方式一:實(shí)例
<script> var person=new Object(); person.firstname="Bill"; person.lastname="Gates"; person.age=56; person.eyecolor="blue"; document.write(person.firstname + " is " + person.age + " years old."); </script>
替代語法(使用對象 literals):
方式二:實(shí)例
<script> var person={firstname:"Bill",lastname:"gates",age:56,eyecolor:"blue"} document.write(person.firstname + " is " + person.age + " years old."); </script>
方式三:使用對象構(gòu)造器
本例使用函數(shù)來構(gòu)造對象:
<script> function person(firstname,lastname,age,eyecolor){ this.firstname=firstname; this.lastname=lastname; this.age=age; this.eyecolor=eyecolor; } //創(chuàng)建對象 var myFather = new person("Bill","Gates",56,"blue"); document.write(myFather.firstname + " is " + myFather.age + " years old."); </script>
創(chuàng)建 JavaScript 對象實(shí)例
一旦您有了對象構(gòu)造器,就可以創(chuàng)建新的對象實(shí)例,就像這樣:
var myFather=new person("Bill","Gates",56,"blue"); var myMother=new person("Steve","Jobs",48,"green");
把屬性添加到 JavaScript 對象
您可以通過為對象賦值,向已有對象添加新屬性:
假設(shè) personObj 已存在 - 您可以為其添加這些新屬性:firstname、lastname、age 以及 eyecolor:
person.firstname="Bill"; person.lastname="Gates"; person.age=56; person.eyecolor="blue"; var x=person.firstname; console.log(x); // Bill
把方法添加到 JavaScript 對象
方法只不過是附加在對象上的函數(shù)。
在構(gòu)造器函數(shù)內(nèi)部定義對象的方法:
<script> function person(firstname,lastname,age,eyecolor){ this.firstname=firstname; this.lastname=lastname; this.age=age; this.eyecolor=eyecolor; this.changeName=changeName; // 構(gòu)造器中定義函數(shù) function changeName(name){ this.lastname=name; } } //創(chuàng)建對象 var myMother=new person("Steve","Jobs",56,"green"); myMother.changeName("Ballmer"); document.write(myMother.lastname); // Ballmer </script>
JavaScript 類
JavaScript 是面向?qū)ο蟮恼Z言,但 JavaScript 不使用類。
在 JavaScript 中,不會(huì)創(chuàng)建類,也不會(huì)通過類來創(chuàng)建對象(就像在其他面向?qū)ο蟮恼Z言中那樣)。
JavaScript 基于 prototype,而不是基于類的。
JavaScript for...in 循環(huán)
JavaScript for...in 語句循環(huán)遍歷對象的屬性。
for (對象中的變量){ 要執(zhí)行的代碼 }
注釋:for...in 循環(huán)中的代碼塊將針對每個(gè)屬性執(zhí)行一次。
實(shí)例
循環(huán)遍歷對象的屬性:
<script> // function myFunction(){ var x; var txt=""; var person={fname:"Bill",lname:"Gates",age:56}; //遍歷對象 for (x in person){ //將遍歷的結(jié)果封裝到txt中 txt=txt + person[x]; } console.log(txt); // BillGates56 // } </script>
對象字面量
函數(shù)的調(diào)用:obj2.sayHi();
var obj = {aaa: 111}; varjson = {“aaa”:111};
對象字面量定義方法和json很像,只有一點(diǎn)不同,json的key要求必須加“”;
Json組成
Var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}
Json由{}和key:value以及逗號(hào)組成,三部分。(只有一個(gè)鍵值對key:value時(shí),可以沒有逗號(hào))
Json數(shù)據(jù)格式(重要)
json是一種與語言無關(guān)的數(shù)據(jù)交換的格式,作用:
1.使用ajax進(jìn)行前后臺(tái)數(shù)據(jù)交換
2.移動(dòng)端與服務(wù)端的數(shù)據(jù)交換
1.Json的格式與解析
json有兩種格式:
1)對象格式:{"key1":value,"key2":value,"key3":value...}
2)數(shù)組/集合格式:[obj,obj,obj...]
例如:user對象 用json數(shù)據(jù)格式表示(user對象里面有4個(gè)屬性)
{"username":"zhangsan","age":28,"password":"123","addr":"北京"}
List<Product> 用json數(shù)據(jù)格式表示(集合里面有3個(gè)paoduct對象)
[{"pid":"10","pname":"小米4C"},{},{}]
注意:對象格式和數(shù)組格式可以互相嵌套
json的key是字符串 json的value是Object(json的值可以為函數(shù))
json的解析:
json是js的原生內(nèi)容,也就意味著js可以直接取出json對象中的數(shù)據(jù)
var person = {"firstname":"張","lastname":"三豐","age":100}; //取出lastname alert(person.lastname); //取出age alert(person.age); </script>
參數(shù)和傳值問題
一、簡單類型數(shù)據(jù)做參數(shù),函數(shù)內(nèi)部對參數(shù)的修改不應(yīng)影響外部變量簡單類型傳數(shù)值。
二、復(fù)雜類型數(shù)據(jù)做參數(shù),函數(shù)內(nèi)部對參數(shù)的修改會(huì)應(yīng)影響外部變量復(fù)雜類型傳地址。
如有不足請多多指教!希望給您帶來幫助!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
新聞名稱:js中對象和面向?qū)ο笈cJson介紹
URL地址:http://chinadenli.net/article16/joegdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、微信小程序、域名注冊、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)