继承

2023-02-08  本文已影响0人  败于化纤

1.Object.getPrototypeOf(obj)

语法:

Object.getPrototypeOf(object)
Object.getPrototypeOf(对象名)

返回值:给定对象的原型。如果没有继承属性,则返回 null

实例:访问obj1的原型对象

const obj1 = {x:1,y:2}
 console.log(Object.getPrototypeOf(obj1))

2.Object.keys()

语法

Object.keys(对象名)

返回值:返回一个数组
该数组包含给定对象的自身可枚举属性名

实例返回obj1可枚举的属性名

const obj1 = {x:1,y:2}
      const arr = Object.keys(obj1)
      console.log(arr)

3.Object.values()

语法

Object.values(对象名)

返回值:返回一个数组
该数组包含给定对象的自身可枚举属性值

实例:返回obj1可枚举的属性值

const obj1 = {x:1,y:2}
      const arr = Object.values(obj1)
      console.log(arr)

4.Object.entries()

定义:

语法:

Object.entries(对象名)

返回值:返回一个数组
该数组包含给定对象的自身可枚举属性名和属性值

实例:返回obj身上可枚举的属性值和属性名

//Object.keys
        const obj = {
            x : 1,
            y : 2,
        }
        //在obj身上一个z:3
        obj.o = 4
        obj.__proto__.z=3
        Object.getPrototypeOf(obj).w = 4
        console.log(obj.__proto__)
       const Arr = Object.entries(obj)
        console.log(Arr)//Array(3) [ (2) […], (2) […], (2) […] ]0: Array [ "x", 1 ]1: Array [ "y", 2 ]2: Array [ "o", 4 ]
        //可枚举属性:字面量法创建的对象属性都是可枚举的
        //自身属性:直接定义在对象上的属性就是自身属性。与继承属性相对应。

5.Object.hasOwnProperty()

定义:

语法

obj.hasOwnProperty("prop")
对象名.hasOwnProperty(“属性名”)

返回值:返回一个布尔值。

实例:检测一个属性是否是自身属性

  const obj = {
            x : 1,
            y : 2,
        }
        //在obj身上一个z:3
        obj.o = 4
        obj.__proto__.z=3
        Object.getPrototypeOf(obj).w = 4
       const Arr = obj.hasOwnProperty("mm")//加引号  false
        console.log(Arr)

6.Object.propertyIsEnumerable()

定义:该方法用于检测指定的属性是否可枚举
语法:

Object.propertyIsEnumerable("属性名")

返回值:布尔值
实例:如何检测一个属性是否可枚举

  const obj = {
            x : 1,
            y : 2,
        }
        //将y修改成不可枚举
        Object.defineProperty(obj,"y",{
            configurable:true,//是否可配置
            enumerable:false,//是否可枚举
            writable:false,//是否可修改
            value:2,//值
        })
        console.log(obj.propertyIsEnumerable("x"))//true
 console.log(obj.propertyIsEnumerable("y"))//false

7.object.assign()

定义:将所有的可枚举属性从一个或多个源对象复制到目标对象
语法:

object.assign(obj1,obj2)

返回值:修改后的对象
实例:将obj2身上的属性复制给obj1

 const obj1 = {
            x : 1,
        }
        const obj2 = {
            y:2,
            z:3
        }
Object.assign(obj1,obj2)
    console.log(obj1)

8.对象的拷贝

方法1:

 const obj1 = {
            x : 1,
        }
        const obj2 = {
            y:2,
            z:3
        }
        obj2.__proto__.w=4//可枚举
        //赋值obj2的属性复制到obj1中
        //方法1
        //1.使用遍历:迭代 枚举
        for(key in obj2){//遍历对象的可枚举属性(自身加继承)
             obj1[key] = obj2[key]
         }
         console.log(obj1)//Object { x: 1, y: 2, z: 3 , __proto__w: 4}

方法2:

 const obj1 = {
            x : 1,
        }
        const obj2 = {
            y:2,
            z:3
        }
        obj2.__proto__.w=4//可枚举
//方法2
          for(key of Object.keys(obj2)){
            obj1[key] = obj2[key]
        }
       console.log(obj1)

方法3

Object.assign(obj1,obj2)
    console.log(obj1)
上一篇下一篇

猜你喜欢

热点阅读