您好,我在使用Javascript创建对象时遇到了麻烦 当我在Chrome中使用控制台时,我发现了一些奇怪的事情:
function person(){this.Name = "John";}
var a = new person()
结果: undefined
但如果我这样做
b = new person()
结果: Person {Name: "John"}
在javascript中创建对象时,使用var
关键字或不使用它是否有任何区别?
答案 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中。