omit.js--学习日记

60 阅读1分钟

Object.assign

先来说说Object.assign,这个方法用于将可枚举属性从一个或者多个源对象复制到目标对象,这种复制是浅复制,就是复制对象的第一层属性,如果是基本数据类型会复制它的值,如果是引用数据类型,会复制它的引用地址。最后返回被修改后的目标对象。

Oimt.js源码

> > 本次源码功能: 剔除对象中的属性,并返回一个新对象

接下来话不多说,直接上源码:

function omit(obj, fields) {
  // eslint-disable-next-line prefer-object-spread
  const shallowCopy = Object.assign({}, obj);
  for (let i = 0; i < fields.length; i += 1) {
    const key = fields[i];
    delete shallowCopy[key];
  }
  return shallowCopy;
}

这段核心代码逻辑比较简单,使用Object.assign()方法,传入空对象和Obj,会返回一个浅拷贝Obj的对象,然后遍历传入的数组,删除对象中对应的属性。

总结

  1. 学习到Object.assign方法的定义和功能
  2. 学习到Omit.js的源码