目标导读 :
Object.getPrototypeOf()
Object.keys()
Object.values()
Object.entries()
Object.hasOwnProperty()
Object.prototype.propertyIsEnumerable()
Object.assign()
1.Object.getPrototypeOf()
定义
-
Object.getPrototypeOf()
方法返回指定对象的原型(内部[[Prototype]]
属性的值)。
语法
Object.getPrototypeOf(object)//参数object要返回其原型的对象
返回值
- 给定对象的原型。如果没有继承属性,则返回
null
实例
const obj = {}
Object.getPrototypeOf(obj).w = 4
console.log(obj);
2.Object.keys()
定义
-
Object.keys()
方法返回自身可枚举的属性名
语法
Object.keys(obj)//参数obj要返回其枚举自身属性的对象
返回值
- 该方法返回⼀个数组
- 该数组包含给定对象的自身可枚举属性名:
-- 自身属性
-- 可枚举属性
示例
const obj = {
x:1,
y:2
}
obj.o = 6
Object.getPrototypeOf(obj).w = 4
const arr = Object.keys(obj)
console.log(arr)
3.Object.values()
定义
-
Object.keys()
方法返回自身可枚举的属性值
语法
Object.values(obj)//参数obj被返回可枚举属性值的对象
返回值
- 该方法返回⼀个数组
- 该数组包含给定对象的自身可枚举属性值
示例
const obj = {
x:1,
y:2
}
obj.o = 6
Object.getPrototypeOf(obj).w = 4
const arr = Object.values(obj)
console.log(arr)
4.Object.entries()
定义
-
Object.entries()
方法返回自身可枚举的属性值
语法
Object.entries(obj)//参数obj可以返回其可枚举属性的键值对的对象
返回值
- 该方法法返回⼀个数组
- 该数组包含给定对象的自身可枚举的属性名和属性值
示例
const obj = {
x:1,
y:2
}
obj.o = 6
Object.getPrototypeOf(obj).w = 4
const arr = Object.entries(obj)
console.log(arr)
5.Object.hasOwnProperty()
定义
-
Object.hasOwnProperty()
检测⼀个属性是否是自身属性
语法
obj.hasOwnProperty(prop)
对象.hasOwnProperty(属性名)
返回值
- 布尔值
- true :表示该属性是对象的自身属性
- false: 表示该属性不是对象的自身属性
示例
//Object.hasOwnProperty()检查的⼀个属性是否是自身属性
const obj = {
x:1,
y:2
}
obj.o = 5
Object.getPrototypeOf(obj).k = 4
//语法:对象.hasOwnProperty(属性名)
const a1 = obj.hasOwnProperty('o')//true
const a2 = obj.hasOwnProperty('k')//false
console.log(a1,a2);
6.Object.prototype.propertyIsEnumerable()
定义
-
Object.prototype.propertyIsEnumerable()
方法用于检测自身属性是否可枚举
语法
obj.propertyIsEnumerable(prop)//prop参数表示需要测试的属性名
返回值
- 布尔值
- true :表示该属性可枚举
- false: 表示该属性不可枚举
示例
//obj.propertyIsEnumerable(prop)
const obj = {
x:1,
y:2,
z:3,
}
//请把y改成不可枚举 > 修改enumerable属性 > Object.defineProperty()
Object.defineProperty(obj,'y',{
enumerable:false
})
const r1 = obj.propertyIsEnumerable('x')
const r2 = obj.propertyIsEnumerable('y')
console.log(r1,r2)
7.Object.assign()
定义
-
Object.assign()
⽅法将所有可枚举属性从⼀个对象复制到另⼀个对象
语法
Object.assign(obj1,obj2)
//obj1: 目标对象
//obj2:源对象
返回值
- 修改后的对象
示例
const obj1 = { x: 1 }
const obj2 = { y: 2, z: 3 }
Object.assign(obj1, obj2)
console.log(obj1) //输出{x:1,y:2,z:3}
如何为字⾯量对象的原型添加属性
__proto__
Object.getPrototypeOf()
什么是自身属性和继承属性
- 定义在对象原型上的属性是继承属性
- 直接定义在对象上的属性是自身属性
Symbol
- Symbol是⼀种基本数据类型
- Symbol是原始值