天天看點

JS對象JS對象筆記

JS對象筆記

定義

無序的資料集合

鍵值對的組合

建立方法

let obj = {"name" : }
let obj = new object {"name" :}
console.log ({"name":})
           

如何使用變量做屬性名

eg :

let p1 = 'name'
let obj = {p1:"frank"}//屬性名為p1
let obj = {[p1]:"frank"}//屬性名為'name'
           

删除屬性

delete obj.name
delete obj['name']
'name' in obj	檢查name是否在obj裡面
           

增加屬性

批量增加

查屬性

Object.key(obj)
console.dir(obj)
obj['name']
obj.name//這裡的name是字元串
obj[name]//這裡的name是變量

           

改屬性

object['name'] = 'xxx'		//改自身
Object.assign(obj,{age:18,name:'xxx'})	//批量改自身
obj.__proto__['toString'] = 'xxx'  //改共有屬性
Object.prototype['toString'] = 'xxx'  //改共有屬性
obj.__proto__ = common //改原型
let obj = Object.creat(common) //改原型(推薦)


           

補充

‘name’ in obj 和obj.hasOwnProperty(‘name’)的差別:

前者檢查name是否為obj的屬性(包括共有屬性),後者則檢查name是否為自身的屬性。

eg

var obj = {name:'frank'}
'name' in obj   				//true
obj.hasOwnProperty('toString')	//true
'toString' in obj  //  true
obj.hasOwnProperty('toString') //false
           

這裡的toString是obj的共有屬性,但不是他自身的屬性,是以前者傳回的是true,後者傳回的是false

繼續閱讀