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
freeGlobal 是用来在 node 环境中捕获 global 变量,这个 global 变量有点相当于浏览器环境中的 window 对象。
freeGlobal
node
global
window
const freeGlobal = typeof global === 'object' && global !== null && global.Object === Object && global export default freeGlobal
首先 global 必须是一个 object ,而且不能为 null 。
object
null
接着判断 global.Object 是否和全局的 object 构造函数相同,如果相同,则这个很大概率就是全局的 global 对象了。
global.Object
如果前面的判断都为 true,则将 global 对象返回。
true
但是这个检测也是有缺陷的,因为 global 并不是 js 中的保留词,因为如果在浏览器中这样定义:
js
var global = { Object: Object }
也是可以冒充 global 对象的。
署名-非商业性使用-禁止演绎 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
源码分析
freeGlobal
是用来在node
环境中捕获global
变量,这个global
变量有点相当于浏览器环境中的window
对象。首先
global
必须是一个object
,而且不能为null
。接着判断
global.Object
是否和全局的object
构造函数相同,如果相同,则这个很大概率就是全局的global
对象了。如果前面的判断都为
true
,则将global
对象返回。但是这个检测也是有缺陷的,因为
global
并不是js
中的保留词,因为如果在浏览器中这样定义:也是可以冒充
global
对象的。License
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面
The text was updated successfully, but these errors were encountered: