We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
本文为读 lodash 源码的第二百八十篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
gitbook也会同步仓库的更新,gitbook地址:pocket-lodash
import baseMerge from './baseMerge.js' import isObject from '../isObject.js'
lodash源码分析之baseMerge
lodash源码分析之isObject
customDefaultsMerge 会被 defaultsDeep 使用, defaultsDeep 可以合并多个对象, customDefaultsDeep 只合并两个对象。
customDefaultsMerge
defaultsDeep
customDefaultsDeep
源码如下:
function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { if (isObject(objValue) && isObject(srcValue)) { stack.set(srcValue, objValue) baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack) stack['delete'](srcValue) } return objValue }
因为调用的时候会和其它函数统一接口,因此会有一些多余的参数。
其实就是调用 baseMerge 来深度合并 objValue 和 srcValue ,这里用了 stack 来防止循环依赖的问题。
baseMerge
objValue
srcValue
stack
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered:
No branches or pull requests
本文为读 lodash 源码的第二百八十篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
gitbook也会同步仓库的更新,gitbook地址:pocket-lodash
依赖
lodash源码分析之baseMerge
lodash源码分析之isObject
源码分析
customDefaultsMerge
会被defaultsDeep
使用,defaultsDeep
可以合并多个对象,customDefaultsDeep
只合并两个对象。源码如下:
因为调用的时候会和其它函数统一接口,因此会有一些多余的参数。
其实就是调用
baseMerge
来深度合并objValue
和srcValue
,这里用了stack
来防止循环依赖的问题。License
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered: