日期:2014-05-16 浏览次数:20307 次
function Person(name){ this.name = name; } var p1 = new Person("mike"); var p2 = Person("jack"); /*这个不会报错,这里Person作为函数被调用,该函数没有返回任何值,所以p2是undefined,作为一个java程序员,我当时在这里确实懵了*/ console.log(p1); console.log(p2);
之所以有疑惑,还是因为对javascript的函数理解不够。 经过查阅资料,就是作为参考书的《JavaScript权威指南(第五版)》,大概弄清楚了,但是还不够清楚。 1、 new是一个运算符,它首先创建一个对象,该对象的属性都未定义,接下来,它将调用特定的构造函数,传递指定的参数,此外还要把新创建的对象传递给关键字this。这样构造函数就可以使用关键字this来初始化新对象。 2、没有参数时,可以省去括号。