对象方法(包含es6)

1.Object.assign(target,source1,source2,...)

方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性,不拷贝继承的属性。(从后向前覆盖)
Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。同名属性会替换。
Object.assign只能进行值的复制,如果要复制的值是一个取值函数,那么将求值后再复制。
Object.assign可以用来处理数组,但是会把数组视为对象。

2.Object.create(prototype,[propertiesObject])

使用指定的原型对象及其属性去创建一个新的对象

3.Object.defineProperties(obj,props)

通过多个描述符一次性定义多个属性,接收两个参数:要为之添加或修改属性的对象和另一个描述符对象,其属性与要添加过修改的属性一 一对应。

    const obj = {}
    Object.defineProperties(obj, {
      a_: {
        value: 1,
        writable: true
      },
      a: {
        get() {
          return a_
        },
        set(newValue) {
          console.log('set劫持')
          this.a_ = newValue
        }
      }
    })
    obj.a = 2   

4.Object.defineProperty(obj,prop,descriptor)(详细)

在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

5.Object.keys(obj)

返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 (两者的主要区别是 一个 for-in 循环还会枚举其原型链上的属性)。

6.Object.values()

方法返回一个给定对象自己的所有可枚举属性值的数组,值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。
Object.values会过滤属性名为 Symbol 值的属性。

7.Object.entries()

返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。

8.hasOwnProperty()

判断对象自身属性中是否具有指定的属性。

9.Object.getOwnPropertyNames()

返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。

10.isPrototypeOf()

判断一个对象是否存在于另一个对象的原型链上。

11.Object.setPrototypeOf(obj,prototype)

设置对象的原型对象

12.Object.is()

判断两个值是否相同。
如果下列任何一项成立,则两个值相同:

13.Object.freeze()

冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。也就是说,这个对象永远是不可变的。该方法返回被冻结的对象。

14.Objec t.isFrozen()

判断一个对象是否被冻结 .

15.Object.preventExtensions()

对象不能再添加新的属性。可修改,删除现有属性,不能添加新属性。

16.Object.getOwnPropertyDescriptor()

取得指定属性的属性描述符,返回一个对象

两个参数:所在的对象和要取得描述符的属性名

16.Object.getOwnPropertyDescriptors()

这个方法实际会在每个自有属性上调用Object.defineProperties()并在一个新对象中返回它们。 

一个参数:对象

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值