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 getSymbols from './getSymbols.js'
《lodash源码分析之getSymbols》
getSymbolsIn 和 getSymbols 的作用差不多,都是收集 object 上的 Symbol 类型的属性,但是 getSymbolsIn 和 for...in 一样,会遍历 object 原型链,收集原型链上所有的 Symbol 属性。
getSymbolsIn
getSymbols
object
Symbol
for...in
源码如下:
function getSymbolsIn(object) { const result = [] while (object) { result.push(...getSymbols(object)) object = Object.getPrototypeOf(Object(object)) } return result }
使用 Object.getPrototypeOf 遍历 object 的原型链,每一层都调用 getSymbols 获取当前的 Symbol 属性,存入数组 result 中,最后将结果返回。
Object.getPrototypeOf
result
署名-非商业性使用-禁止演绎 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源码分析之getSymbols》
源码分析
getSymbolsIn
和getSymbols
的作用差不多,都是收集object
上的Symbol
类型的属性,但是getSymbolsIn
和for...in
一样,会遍历object
原型链,收集原型链上所有的Symbol
属性。源码如下:
使用
Object.getPrototypeOf
遍历object
的原型链,每一层都调用getSymbols
获取当前的Symbol
属性,存入数组result
中,最后将结果返回。License
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered: