一.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物件的rest和spread屬性方法
以上是JavaScript物件詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!