国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js中對象和面向對象與Json介紹

2019-11-19 12:14:28
字體:
來源:轉載
供稿:網友

ECMA-262 把對象(object)定義為“屬性的無序集合,每個屬性存放一個原始值、對象或函數”。嚴格來說,這意味著對象是無特定順序的值的數組。

面向對象語言的要求

一種面向對象語言需要向開發者提供四種基本能力:

  1. 封裝 - 把相關的信息(無論數據或方法)存儲在對象中的能力
  2. 聚集 - 把一個對象存儲在另一個對象內的能力
  3. 繼承 - 由另一個類(或多個類)得來類的屬性和方法的能力
  4. 多態 - 編寫能以多種方法運行的函數或方法的能力

對象的創建和銷毀都在 JavaScript 執行過程中發生,理解這種范式的含義對理解整個語言至關重要。

JavaScript 中的所有事物都是對象:字符串、數值、數組、函數...

此外,JavaScript 允許自定義對象。

JavaScript 對象

JavaScript 提供多個內建對象,比如 String、Date、Array 等等。

對象只是帶有屬性和方法的特殊數據類型。

訪問對象的屬性

屬性是與對象相關的值。

訪問對象屬性的語法是:

objectName.propertyName

這個例子使用了 String 對象的 length 屬性來獲得字符串的長度:

var message="Hello World!";var x=message.length;  //  12

訪問對象的方法

方法是能夠在對象上執行的動作。

您可以通過以下語法來調用方法:

objectName.methodName()

這個例子使用了 String 對象的 toUpperCase() 方法來將文本轉換為大寫:

var message="Hello world!";var x=message.toUpperCase();  //  HELLO WORLD!

創建 JavaScript 對象

通過 JavaScript,您能夠定義并創建自己的對象。

創建新對象有兩種不同的方法:

  1. 定義并創建對象的實例
  2. 使用函數來定義對象,然后創建新的對象實例

方式一:實例

<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):

方式二:實例

<script>  var person={firstname:"Bill",lastname:"gates",age:56,eyecolor:"blue"}  document.write(person.firstname + " is " + person.age + " years old.");</script>

方式三:使用對象構造器

本例使用函數來構造對象:

<script>  function person(firstname,lastname,age,eyecolor){  this.firstname=firstname;  this.lastname=lastname;  this.age=age;  this.eyecolor=eyecolor;  } //創建對象  var myFather = new person("Bill","Gates",56,"blue");  document.write(myFather.firstname + " is " + myFather.age + " years old.");</script>

創建 JavaScript 對象實例

一旦您有了對象構造器,就可以創建新的對象實例,就像這樣:

var myFather=new person("Bill","Gates",56,"blue");var myMother=new person("Steve","Jobs",48,"green");

把屬性添加到 JavaScript 對象

您可以通過為對象賦值,向已有對象添加新屬性:

假設 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 對象

方法只不過是附加在對象上的函數。

在構造器函數內部定義對象的方法:

<script>  function person(firstname,lastname,age,eyecolor){    this.firstname=firstname;    this.lastname=lastname;    this.age=age;    this.eyecolor=eyecolor;    this.changeName=changeName;  // 構造器中定義函數    function changeName(name){      this.lastname=name;    }}//創建對象    var myMother=new person("Steve","Jobs",56,"green");myMother.changeName("Ballmer");document.write(myMother.lastname);  //  Ballmer</script>

JavaScript 類

JavaScript 是面向對象的語言,但 JavaScript 不使用類。

在 JavaScript 中,不會創建類,也不會通過類來創建對象(就像在其他面向對象的語言中那樣)。

JavaScript 基于 prototype,而不是基于類的。

JavaScript for...in 循環

JavaScript for...in 語句循環遍歷對象的屬性。

for (對象中的變量){ 要執行的代碼}

注釋:for...in 循環中的代碼塊將針對每個屬性執行一次。

實例

循環遍歷對象的屬性:

<script> // function myFunction(){    var x;    var txt="";    var person={fname:"Bill",lname:"Gates",age:56};     //遍歷對象    for (x in person){      //將遍歷的結果封裝到txt中       txt=txt + person[x];    }  console.log(txt);  //  BillGates56 // }</script>

對象字面量

函數的調用:obj2.sayHi();

var obj = {aaa: 111};           varjson = {“aaa”:111};

對象字面量定義方法和json很像,只有一點不同,json的key要求必須加“”;

Json組成

Var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}

Json由{}和key:value以及逗號組成,三部分。(只有一個鍵值對key:value時,可以沒有逗號)

Json數據格式(重要)

json是一種與語言無關的數據交換的格式,作用:

1.使用ajax進行前后臺數據交換

2.移動端與服務端的數據交換

1.Json的格式與解析

json有兩種格式:

1)對象格式:{"key1":value,"key2":value,"key3":value...}

2)數組/集合格式:[obj,obj,obj...]

例如:user對象 用json數據格式表示(user對象里面有4個屬性)

{"username":"zhangsan","age":28,"password":"123","addr":"北京"}

List<Product> 用json數據格式表示(集合里面有3個paoduct對象)

[{"pid":"10","pname":"小米4C"},{},{}]

注意:對象格式和數組格式可以互相嵌套

      json的key是字符串  json的value是Object(json的值可以為函數)

json的解析:

json是js的原生內容,也就意味著js可以直接取出json對象中的數據

var person = {"firstname":"張","lastname":"三豐","age":100};  //取出lastname  alert(person.lastname);  //取出age  alert(person.age);</script>

參數和傳值問題

一、簡單類型數據做參數,函數內部對參數的修改不應影響外部變量簡單類型傳數值。

二、復雜類型數據做參數,函數內部對參數的修改會應影響外部變量復雜類型傳地址。

如有不足請多多指教!希望給您帶來幫助!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍山县| 石阡县| 南岸区| 瑞安市| 榆社县| 夹江县| 宿迁市| 宾川县| 石屏县| 依安县| 裕民县| 宁德市| 新乐市| 南宁市| 翁源县| 富川| 百色市| 洛扎县| 大田县| 三门县| 岳阳县| 鄂托克前旗| 鹤庆县| 泽州县| 徐闻县| 攀枝花市| 仁化县| 巴林右旗| 枣庄市| 卓资县| 江津市| 深州市| 济阳县| 乌鲁木齐市| 和静县| 开封县| 石城县| 阳春市| 兰考县| 潮州市| 邮箱|