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
uniqueId 用来生成唯一 ID,如果有传入 prefix ,则生成的 ID 前面会拼接上 prefix 。
uniqueId
prefix
源码如下:
const idCounter = {} function uniqueId(prefix='$lodash$') { if (!idCounter[prefix]) { idCounter[prefix] = 0 } const id =++idCounter[prefix] if (prefix === '$lodash$') { return `${id}` } return `${prefix + id}` } export default uniqueId
使用 idCounter 来记录已经生成的 ID,不同的 prefix 都有独自的 ID 计数器, prefix 默认为 $lodash$ ,但是默认的 prefix 不会拼接在生成的 ID 前面。
idCounter
$lodash$
调用函数时,首先先判断 idCounter[prefix] 下是否已经生成过 ID,如果没有,则先初始化为 0 。
idCounter[prefix]
0
接下来自增计数器,得到 id ,可以看到,第一次调用时,生成的 id 为 1 。
id
1
如果 prefix 为 $loadsh$ ,则认为没有传入 prefix ,直接返回 id 字符串。
$loadsh$
如果有传入 prefix ,则将 prefix 拼接在 id 前面。
署名-非商业性使用-禁止演绎 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
源码分析
uniqueId
用来生成唯一 ID,如果有传入prefix
,则生成的 ID 前面会拼接上prefix
。源码如下:
使用
idCounter
来记录已经生成的 ID,不同的prefix
都有独自的 ID 计数器,prefix
默认为$lodash$
,但是默认的prefix
不会拼接在生成的 ID 前面。调用函数时,首先先判断
idCounter[prefix]
下是否已经生成过 ID,如果没有,则先初始化为0
。接下来自增计数器,得到
id
,可以看到,第一次调用时,生成的id
为1
。如果
prefix
为$loadsh$
,则认为没有传入prefix
,直接返回id
字符串。如果有传入
prefix
,则将prefix
拼接在id
前面。License
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered: