代码之家  ›  专栏  ›  技术社区  ›  mykhal

javascript反射:获取变量

  •  4
  • mykhal  · 技术社区  · 14 年前

    如何在javascript中获取全局和/或局部变量的集合?

    (例如,在python中 globals() locals() )

    如果在javascript中没有这样的功能,那么一些javascript控制台接口如何获得它们,从而能够自动完成?

    1 回复  |  直到 14 年前
        1
  •  4
  •   SLaks    14 年前

    你在找 for / in 循环。

    要获取所有全局参数:

    for(var name in this) {
        var value = this[name];
        //Do things
    }
    

    (这只有在全局范围内运行时才能正常工作;您可以用匿名函数包装它以确保这一点。但是,要小心 with 方块)

    要获取特定对象的所有属性:

    for(var name in obj) {
        //Optionally:
        if (!obj.hasOwnProperty(name)) continue;    //Skip inherited properties
    
        var value = obj[name];
        //Do things
    }
    

    然而,没有办法循环通过所有 地方的 变量。