使用var关键字在Javascript中创建对象时出现问题

时间:2014-02-07 01:40:50

标签: javascript variables console google-chrome-devtools

您好,我在使用Javascript创建对象时遇到了麻烦 当我在Chrome中使用控制台时,我发现了一些奇怪的事情:

function person(){this.Name = "John";}
var a = new person()

结果: undefined

但如果我这样做

b = new person()

结果: Person {Name: "John"}

在javascript中创建对象时,使用var关键字或不使用它是否有任何区别?

4 个答案:

答案 0 :(得分:3)

检查a的值,它实际上与b相同。 undefined只是评估表达式var a = new person()的结果。

答案 1 :(得分:0)

在函数内部,所有未声明的变量都是全局变量。只有那些用var声明的是本地的。 所以就范围而言,它是不同的。 如果要在函数内部分配值并在外部打印,则可以解释您的情况。

答案 2 :(得分:0)

Chrome会针对未明确return值的任何语句返回undefined。

e.g。

var j = "Jenny from the block";

返回

  
    

未定义

  

要完全运行代码,请尝试

function person(){this.Name = "John";}
var a = new person();
console.log(a.Name);

答案 3 :(得分:0)

这就是浏览器控制台的工作原理。它返回您执行的任何返回值。在这种情况下,您的语句将返回undefined。由于控制台在窗口范围内运行,因此没有确定问题。发生在Firefox和Chrome中。

Console returns undefined