new一个函数与直接调用一个函数的区别

例子一:

var Test =  function(){

 

this.name = "qudc";

return "qudc";

}

var a = Test();

var b = new Test();

 

例子二:

var Test =  function(){

 

this.name = "qudc";

return function(){return "Test"};

}

var a = Test();

var b = new Test();

 

上面两种情况,b都是一个对象,对象的构造方法是不是Test 要看有没有返回对象,如果返回对象(例子二中),那么b.constructor  为 Function 。例子一中,b.constructor  为 Test。

 

执行方法Test,返回值的类型由方法中的return语句来决定。

 

只要new一个函数(构造函数),如果构造函数没有返回值或者返回值不是对象,那么默认返回this对象,即本对象。如果返回其他对象,那么结果即为别的对象。调用new一个函数,会创建一个新的对象,在构造函数内部 ,即被调用的函数中, this 指向新创建的对象 Object。

例子二中 a 和 b没有功能性上的区别。可以认为相似,但不相同。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值