new操作符具体做了什么

一共4步

1.创建了一个新对象

2.把空对象和构造函数通过原型链进行连接

3.将构造函数的作用域赋给新对象(因此 this 指向这个新对象)。

4.如果构造函数返回了一个对象,则返回该对象;否则返回新创建的对象。

javascript 复制代码
        function Person(){}
        const p=new Person()
       
       // 1.创建了一个新对象
       const obj={}
       //2.把空对象和构造函数通过原型链进行连接
       obj.__proto__===Person.prototype
       //3.将构造函数的作用域赋给新对象(因此 this 指向这个新对象)。
       Person.call(obj)
       //4.如果构造函数返回了一个对象,则返回该对象;否则返回新创建的对象。
       return typeof result === 'object' ? result : obj
相关推荐
代码方舟几秒前
Java金融风控实战:集成天远二手车估值API构建车贷抵押资产核验系统
java·开发语言·python·自动化
吴声子夜歌5 分钟前
JavaScript——面向对象
java·开发语言·javascript
阿kun要赚马内9 分钟前
Python五类数据容器的对比和通用方法
开发语言·python
RE-190110 分钟前
Polars:告别 Pandas 性能瓶颈,用 Rust 驱动的 DataFrame 库处理亿级数据
开发语言·rust·pandas·polars·ai生成
apcipot_rain12 分钟前
事无巨细地解释一个vue前端网页
前端·javascript·vue.js
2301_7938046913 分钟前
C++中的备忘录模式
开发语言·c++·算法
han_14 分钟前
JavaScript设计模式(三):代理模式实现与应用
前端·javascript·设计模式
好家伙VCC14 分钟前
# 发散创新:用 Rust 实现高性能事件驱动架构的实践与优化 在现代软件系统中,**事件驱动编程模型**已经成为构
java·开发语言·python·架构·rust
2501_9454235418 分钟前
C++编译期多态实现
开发语言·c++·算法