手动实现 new
首先要明白 new 调用的过程做了什么
- 创建一个空对象
- 调用构造函数
- 原型指向
- 根据返回值来确定返回是 返回值 还是 创建的对象
function myNew(className, ...args) { const obj = {} const ret = className.call(obj, ...args) obj.__proto__ = className.prototype return (typeof ret === 'object' && ret) ? ret : obj }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 二次封装 typeof
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论