V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DamienS
V2EX  ›  React

React 有没有办法列出所有 global variable

  •  
  •   DamienS · 2018-12-16 13:16:30 +08:00 · 2592 次点击
    这是一个创建于 2202 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,初学 react. 我在 app 中可以直接 access windown 和 DEV 之类的全局变量,但是我想问下有没办法列出所有可用的全局变量?

    4 条回复    2018-12-16 15:40:08 +08:00
    Pastsong
        1
    Pastsong  
       2018-12-16 13:45:20 +08:00
    console.log(window)

    和 react 无关
    DamienS
        2
    DamienS  
    OP
       2018-12-16 14:17:17 +08:00
    @Pastsong 除了 window,我测试了下 process 好像也是一个?

    console.log(process) 我能打出
    {nextTick: ƒ, title: "browser", browser: true, env: {…}, argv: Array(0), …}

    假设有人定义了新的全局变量(而且没有加到 window 里). 我要怎么知道这个变量存在? js 中有没有那种列出所有全局变量的方法, 还是人为定义新的变量只能加到现有的 window 里?
    Pastsong
        3
    Pastsong  
       2018-12-16 14:22:34 +08:00
    浏览器环境里 window 等于 global,你可以试下 window.window === window

    node 里面就直接叫 global

    process 并不是浏览器原生的变量,应该是其他脚本注入的
    maplerecall
        4
    maplerecall  
       2018-12-16 15:40:08 +08:00 via Android
    需要注意,你说的 DEV 很可能并不是一个全局变量,而是 webpack 的 definePlugin 注入的一个标识符,在编译时会被替换成 webpack.config 里写的一个的 node 中的变量,浏览器的 runtime 里并不会存在这个,你看编译后的代码一般 DEV 的地方会直接被替换成 true 或者 false 之类的固定值
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1135 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:48 · PVG 02:48 · LAX 10:48 · JFK 13:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.