本文为lodash源码分析的第一篇,后续会持续更新这个专题,欢迎指正。
依赖
import baseGet from './.internal/baseGet.js';
源码分析
get函数可以对数组或对象进行深层次取值,比如:
const object = { 'a': [{ 'b': { 'c': 3 } }] }
get(object, 'a[0].b.c') // 3
源码如下:
function get(object, path, defaultValue) {
const result = object == null ? undefined : baseGet(object, path);
return result === undefined ? defaultValue : result;
}
首先判断传进来的对象object是否存在,如果不存在(undefined或null),reseult变量赋值为undefined,否则调用baseGet函数获取。
接着判断reseult是否为undefined,是则返回默认值defaultValue,否则返回取值结果。
get函数主要功能是由baseGet实现的,后面会继续更新对baseGet的分析。