首頁  >  文章  >  web前端  >  JavaScript物件詳解

JavaScript物件詳解

小云云
小云云原創
2018-03-17 15:38:11950瀏覽

一.JavaScript 物件介紹

1.物件是什麼?對像是程式中的對象,程式是用來描述現實生活世界。 如現在要寫一個程序來管理大家的信息,這邊就有每個人的信息(身高,體重等),這些信息都是相互獨立,如果要高效管理這些信息,就要放到一個容器(對象)中進行管理。

總結:

*代表現實中的某個事物,是該事物在程式設計中的抽象(數據,是引用資料型別)

*多個資料的集合體(封裝體)

*用於保存多個資料的容器

2.為什麼要用物件?

便於對多個資料進行統一管理

3.物件的組成(屬性+方法)

*屬性:

      *代表現實事物的狀態資料

      *由屬性名稱和屬性值組成

      *屬性名稱都是字串類型,屬性值是任意型別

*方法

    *代表現實事物的行為資料

    *方法是特別的屬性(屬性值是函數的時候)

const p={
            name:'tom',//属性:属性值不是函数
            setName:function (name){//方法:属性值为函数------这个也是属性
                this.name=name;
            },
            'age':23,//属性名是字符串'age'或是‘setAge’
            'setAge':function(age){
                this.age=age;
            }
        }
        console.log(p.setName('jack'),p.name);//undefined "jack"
        p['setAge'](34);//这是函数
        console.log(p['age']);//34

4.如何存取物件內部的資料?

   *    .屬性名稱:編碼簡單。但有時不能用

  *['屬性名稱']:編碼麻煩,但當通用(注意使用這個設定參數時,存取也必須用這樣的方式)

eg:b={ 'a':3}/b=['a']-----a>是字串而不是變數

#b[a]=3------>這個a 是變數

5.什麼時候必須使用['屬性名稱']的方式?
    a.屬性名稱有特殊字元(如content-type)
    b.屬性名稱不確定(屬性名稱為變數)

            var obj={};
            //给对象添加一个属性:'content-type':'text/json'
            //obj.content-type='text/json';//报错了,有横杆不是合法标识名
            obj['content-type']='text/json';
            console.log(obj['content-type']);

            //要对象添加一个属性,但是属性名不确定(不确定的东西要定义成变量)
            var propName='my name';
            var value='jack';
            //obj.propName=value;
            //console.log(obj)//obj={propName:'jack'}
//obj.propName不能用这个,因为想要的属性名是my name而不是propName,所以要用obj['propName']=value;
            obj[propName]=value;
            console.log(obj['propName'])
            console.log(obj)//obj={'my name':'jack'}

6.類別與物件的關係
  對象是從類別產生的,物件是類別的是一個實例(如:一個月餅和月餅模子)

7.驗證物件是否屬於某個類別
  物件instanceof 類型

#8 .操作

(1).建立Object類型物件
  建立方式: new 類別名稱();  //對於任何類型建立物件的方式是通用的。
如: var obj = new Object();
  Object型別建立物件的簡寫方式:var obj = {};

(2).新增或修改屬性:
  方式一: 
  物件.屬性名稱= 資料;
  方式二: 
  物件[「屬性名稱」] = 資料;   //中括號中必須是字串或存放字串的變數
(3 ). 找出
方法一: 
  物件.屬性名稱;
  方式二: 
  物件[「屬性名稱」];  

#(4).刪除屬性:
方式一: 
  delete 物件.屬性名稱;//傳回boolean值,true表示刪除成功
  方式二: 
  delete 物件[「屬性名稱」];//傳回boolean值,true表示刪除成功

(5).偵測一個物件中是否存在某個屬性
  物件.hasOwnProperty(「屬性名稱」);   //存在回傳true,否則回傳false

(6) .Object類型的物件加入鍵值對的第二種方式:
  var obj = {屬性名稱:資料,屬性名稱:資料,屬性名稱:資料...}; 

二.列子

1.console.log(a[obj1])輸出多少?

var a={};
  var obj1={n:2};
   var obj2={n:3}
    a[obj1]=4;
a[obj2]=5;
console.log(a[obj1])//输出5 
// console.log(a)知道属性名是[object Object] ,通过这个想到对象的属性名都是字符串,对象如果转换字符串:是obj.toString(),这个是固定的方法,返回的[object Object] ,所以obj1,obj2返回是一样属性名[object
 Object] 。所以a[obj2]是对a[obj1]的覆盖

相關推薦:

javascript物件有哪三個屬性

改變JavaScript物件的rest和spread屬性方法

JavaScript物件

以上是JavaScript物件詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn