【源码阅读】omitjs源码的初步体验

649 阅读2分钟

本文参加了由公众号@若川视野 发起的每周源码共读活动,点击了解详情一起参与。

【若川视野 x 源码共读】第36期 | 可能是历史上最简单的一期 omit.js 剔除对象中的属性点击了解本期详情一起参与

准备工作

git clone https://github.com/benjycui/omit.js.git
进入目录下
npm install
这一步花了我好长时间,也可能是我的网速问题,看到加载了很多没见过的依赖,心里发憷,一项一项的往下看吧,虽说是【共读源码】中最简单的任务,但对于我这样的小白其实一点也不简单

很搞笑,我去百度了一下omit这个单词是什么意思

image.png

说实话我还不知道怎么调试,所以我去先看看这篇文章学习如何调试js代码 新手向:前端程序员必学基本技能——调试JS代码 - 掘金 (juejin.cn)

看完了,感觉还是无从下手,我再想想别的办法,新建一个项目,在项目中使用omit.js

先看看package.json

  1. 发现了个father又去github上搜了搜,是一款 NPM 包研发工具,没用过
  2. np发布工具
  3. assert测试工具,看见有同学推荐jest
  4. 一个包含 prettier,eslint,stylelint 的配置文件合集,这个有时间在研究

遇到的问题

  1. 我在新建项目中使用omit.js总是报错

image.png

后来把方法换成omit.default就可以了

image.png

不知道大家有没有遇到我这样的问题,我按入口文件去翻了一下源码,

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

function omit(obj, fields) {
  // eslint-disable-next-line prefer-object-spread
  var shallowCopy = Object.assign({}, obj);

  for (var i = 0; i < fields.length; i += 1) {
    var key = fields[i];
    delete shallowCopy[key];
  }

  return shallowCopy;
}

var _default = omit;
exports.default = _default;//require的是exports对象,default属性指向的方法才是omit函数

学到的东西

  1. 测试用例的使用
  2. Object.assign()的使用

不足之处

  1. 不怎么会写测试用例,应学习一下jest
  2. 还是习惯console.log()调试代码

第一次这样写文章,写的不太好,慢慢迭代吧