var a=new function(){}是什么?(学习记录)

第一次看到var a=new function(){}时有点懵逼,既和var a=function(){}有点像,又和var a = new Function()有点像,但是其实它是用new创建了一个对象。

var a = new function(){console.log("调用了这个函数");}//调用了这个函数
console.log(a);//[object Object]

拆开来看就是

function fun(){console.log("调用了这个函数");}
var a = new fun();//调用了这个函数
console.log(a);//[object Object]

注意:如果函数没有return,或者返回值类型的数据时,new表达式返回的是new创建的对象,只有函数返回引用类型的数据才会覆盖掉new创建的匿名对象。

var a = new function(){
    return 1
}
console.log(a);//[object Object]

var b = new function(){
    return {a: 1, b: 2}
}
console.log(b);//{a: 1, b: 2}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值