虽然两个变量都已声明,但是下面的函数有什么问题?

时间:2017-04-13 11:41:04

标签: javascript



 function foo() {
      this.baz = "baz";
      console.log(this.bar + " " + baz);
    }
    
    var bar = "bar";
    var baz = new foo(); // "undefined undefined"
    
    foo(); // "bar baz"




当我在函数上面运行时,输出为undefined undefined。我不明白为什么barbaz的值都没有显示在控制台日志中。

但是当我简单地调用foo()时,控制台中的输出为"bar baz"。为什么会这样?

2 个答案:

答案 0 :(得分:1)

this.bar未定义,也许您的意思是this.baz

未定义

baz,因为您在构造函数中进行打印。在运行全局baz变量时,仍然未定义。

答案 1 :(得分:-1)

很容易。仅仅因为你有范围问题。

请参阅...

function foo() {
      this.baz = "baz";
      console.log(bar + " " + this.baz);
    }
    
    var bar = "bar";
    var baz = new foo();