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