日期:2014-05-16  浏览次数:20288 次

javascript学习笔记:new运算符
作为一个学习过其他语言的程序员来说,对new肯定不陌生。 我一度也是这样。

但是前两天突然想到这样的代码时,我就懵了。


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、没有参数时,可以省去括号。