当JS构造函数内有return语句时

探讨JavaScript构造函数中return语句的影响。当返回引用类型时,实例化对象将被取代;值类型则无影响。详解new操作符的四步执行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天才发现当js构造函数内又return语句时会和没有return语句不同。

以上可以看出来如果返回类型是引用类型,那么实例化出的对象将会被返回的对象取代,也就是[1,2]。但如果返回的是值类型那么并没有什么影响。

调用new foo()时有以下四步操作。

1.首先,新建一个空对象var obj = { }

2.之后obj的__proto__指向构造函数的原型对象 obj._proto_ = foo.prototype

3.将构造函数的this绑定到obj上,并运行构造函数  foo.call( obj )

4.返回obj对象,将其作为new出的实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值