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
相关推荐
三两肉3 小时前
Java 中 ArrayList、Vector、LinkedList 的核心区别与应用场景
java·开发语言·list·集合
Humbunklung5 小时前
Rust 控制流
开发语言·算法·rust
ghost1435 小时前
C#学习第27天:时间和日期的处理
开发语言·学习·c#
jason成都5 小时前
c#压缩与解压缩-SharpCompress
开发语言·c#
JohnYan6 小时前
Bun技术评估 - 04 HTTP Client
javascript·后端·bun
傻啦嘿哟6 小时前
从零开始:用Tkinter打造你的第一个Python桌面应用
开发语言·c#
三十一6147 小时前
6.4 C++作业
开发语言·c++
我的golang之路果然有问题8 小时前
ElasticSearch+Gin+Gorm简单示例
大数据·开发语言·后端·elasticsearch·搜索引擎·golang·gin
Alan3168 小时前
Qt 中,设置事件过滤器(Event Filter)的方式
java·开发语言·数据库
拉不动的猪8 小时前
TS常规面试题1
前端·javascript·面试