keys
获取对象的所有键名,返回一个数组
const obj = {
name: '804-3',
people: ['zhangsan','lisi','wangwu','zhaoliu'],
age: [18,18,18,18]
}
console.log(Object.keys(obj));
values
获取对象所有的属性值,返回一个数组
const obj = {
name: '804-3',
people: ['zhangsan','lisi','wangwu','zhaoliu'],
age: [18,18,18,18]
}
console.log(Object.values(obj));
entries
以二维数组的形式返回对象的属性和属性值
const obj = {
name: '804-3',
people: ['zhangsan','lisi','wangwu','zhaoliu'],
age: [18,18,18,18]
}
console.log(Object.entries(obj));
getOwnPropertyDescriptor
获取对象属性的描述对象
const obj = {
name: '804-3',
people: ['zhangsan','lisi','wangwu','zhaoliu'],
age: [18,18,18,18]
}
console.log(Object.getOwnPropertyDescriptor(obj,"name"));
Object.defineProperty(obj,"name",{
writable:false,
value:"dongli",
enumerable:true,
configurable:false
})
console.log(Object.getOwnPropertyDescriptor(obj,"name"));
create
创建一个新对象,使用现有的对象来提供新创建的对象的__proto__
Object.create(proto, [propertiesObject])
proto参数要么是一个原型对象要么为null
propertiesObject 对象的数据属性,不知道什么是对象的数据属性的可以
看我《js专栏的对象的访问器属性和数据属性》博客文章。
const obj = {
name: '804-3',
people: ['zhangsan','lisi','wangwu','zhaoliu'],
age: [18,18,18,18]
}
obj.__proto__.clg = function(){
console.log("nihao");
}
const obj2 = Object.create(obj.__proto__,{
name: {
value: 'ds',
writable: false,
configurable: false,
enumerable: true
}
});
console.log(obj2);
obj2.clg();