開發中物件Object常用方法
阿新 • • 發佈:2021-02-06
技術標籤:jsjavascript
entries()
對鍵值對遍歷,返回的是一個鍵值對陣列
Object.entries(obj)
let obj = {
name: 'kaolin',
age: 18,
birthday: '1998-05-20'
}
console.log(Object.entries(obj));
keys()
對鍵名遍歷,返回的是一個key組成的陣列
Object.keys(obj)
values()
對鍵值遍歷,返回的是一個鍵值組成的陣列
Object.values(obj)
assign()
多個物件拼接最後返回一個物件 Object.assign(obj1,obj2,boj3)
let obj = {
name: 'kaolin',
age: 18,
birthday: '1998-05-20'
}
console.log(Object.assign({},obj,{school: 'university'}));
create()
用指定的原型物件和屬性建立一個新物件。新物件的隱式原型指向原型物件,但是改變新物件的值時不會
改變原型物件的值
let obj = {
name: 'kaolin',
age: 18,
birthday: '1998-05-20'
}
let obj1 = Object.create (obj)
obj1.age = 19
console.log(obj.age); //18
console.log(obj1.age); //19
defineProperty()
直接在物件上定義新屬性,或修改物件上的現有屬性,然後返回物件。 Obeject.defineProperty(obj, 'prop', { value: '1' //屬性值 enumerable: false, //是否可列舉,如果為false,則在遍歷的時候獲取不到改屬性 configurable: false, //是否可刪除,如果為false,則不能刪除該屬性 writable: false, //是否可讀寫,如果為false,則不能修改該屬性 })
let obj = {
name: 'kaolin',
age: 18,
birthday: '1998-05-20'
}
let obj1 = Object.defineProperty(obj, 'sex', {
value: '男',
configurable: false,
enumerable: false,
writable: false
})
console.log(Object.entries(obj1))
因為設定了enumerable:false,所以sex屬性不可以被列舉到
getOwnPropertyNames()
返回一個數組,其中包含給定物件自己的所有可列舉和不可列舉屬性的名稱。
let obj = {
name: 'kaolin',
age: 18,
birthday: '1998-05-20'
}
let obj1 = Object.defineProperty(obj, 'sex', {
value: '男',
configurable: false,
enumerable: false,
writable: false
})
console.log(Object.getOwnPropertyNames(obj1))