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

为什么在js示例中输出的是“undefined”而不是“number”?[复制品]

  •  0
  • Deadpool  · 技术社区  · 6 年前

    这个问题已经有了答案:

    到底是怎么输出“未定义”而不是“数字”?

    <script>
    
    var foo = {
      bar: function(){ return this.baz; },
      baz: 1
    }
    
    console.log(typeof (f = foo.bar)());
    
    </script>

    注: 代码是完全正确的,不是打字错误。我是说(f=foo.bar) 只有在这里这是一个有效的代码。

    2 回复  |  直到 6 年前
        1
  •  3
  •   n1kkou    6 年前

    因为在执行时,上下文是“window”,所以在window对象上没有声明变量“baz”。