function Person(name, age) {
this.name = name;
this.age = age;
this.colors = ['red', 'blue'];
}
Person.prototype.sayName = function(){
console.log('Person', this.name);
}
var person1 = new Person('zhangan', 25);
1、Object.Object.getPrototypeOf(obj)
返回其原型的对象
Object.Object.getPrototypeOf(person1)
{
sayName: function,
constructor: function,
[[prototype]]: Object
}
2、Object.getOwnPropertyDescriptors(obj)、
#Object.getOwnPropertyDescripter(obj, prop) 获取对象属性的描述信息
Object.Object.getOwnPropertyDescriptors(person1)
{
age: {
configurable: true
enumerable: true
value: 25
writable: true
},
name: {,,, value: 'zhangan'}
colors: {,,,value: ['red', 'blue']}
}
Object.Object.getOwnPropertyDescriptor(person1, 'age')
{
configurable: true
enumerable: true
value: 25
writable: true
}
3、Object.defineProperty(obj, prop, descriptor)
Object.defineProperties(obj, props)
对象上设置属性
var obj = {a: 'a'};
Object.defineProperty(obj, 'key1', {
enmuerable: false,
write: false,
value: 'key111'
configurable: false,
get: function(){
return value;
},
set: function(newValue){
value = newValue
}
});
//obj的值
obj={
a: 'a',
key1: 'key111'
}
4、Object.getOwnPropertyNames(obj)
以数组形式,返回属性名称的集合,包括可枚举和不可枚举属性名称
Object.getOwnPropertySymbols(obj)
返回Symbols属性值集合
var key = Symbol('key');
var obj = {
[key]: 123,
value: 456
};
Object.getOwnPropertySymbols(obj)//[Symbol(key)]