new和this,prototype,call等一样,都是比较困扰新手的一个关键字,随着最近对原型的学习的深入,终于对new的理解又有了一个新的认识。
new的一个重要的作用可以归结如下:
1.参数
new 后跟的构造器可赋予参数,此参数将成为实例化后对象的实际参数。
2.返回值
当有new运算符来协助构造器时,它会返回一个新创建的对象,并存放参数。在没有new运算符,仅仅有构造器创建参数时,其只返回一个数据而不是真正意义上的对象,我们可以写一段测试代码:
new 后跟的构造器可赋予参数,此参数将成为实例化后对象的实际参数。
2.返回值
当有new运算符来协助构造器时,它会返回一个新创建的对象,并存放参数。在没有new运算符,仅仅有构造器创建参数时,其只返回一个数据而不是真正意义上的对象,我们可以写一段测试代码:
<script type="text/javascript">
var a = new String("tips");
var b = String("tips");
var c = "tips";
a.l = 3;
b.l = 4;
c.l = 5
console.log("a:"+a.l);//a:3;
console.log("b:"+b.l);//b:undefined;
console.log("c:"+c.l);//c:undefined;
</script>
这里我们可以看到,通过new来创建的对象可以添加属性“l”,而没有new的b,c添加属性后的输出为“undefined”,可见,new最大的作用是返回新对象。
仍存疑问:
一切事物皆对象,但不是所有对象都能拥有属性与方法,这句话对吗?