new 一个构造函数的过程以及手写 new

  1. new 一个构造函数的过程:

【1】创建一个空对象

【2】空对象的的隐式原型 proto\[ prototype ] 指向构造函数的显示原型 prototype

【3】将 this 指向新对象

【4】执行构造函数内部代码,给新对象添加属性

【5】返回新对象

2.手写new

javascript 复制代码
funtion myNew(fn, ...args){
    let obj = Object.create(fn.prototype);
    let res = fn.apply(fn, args);
    // 构造函数执行后,返回值如果不是是对象或函数,则返回新创建的对象
    return res instanceof Object ? res: obj; 
}

也有这样写的
let obj = {};
obj._proto_ = fn.prototype;

其实目的都是为了让新创建的对象的_proto_指向构造函数的原型
相关推荐
Appthing4 分钟前
在 TanStack Start 中使用 VitePWA 的正确配置
javascript
前端炒粉1 小时前
手写promise
java·前端·javascript
mONESY1 小时前
Node.js fs 文件系统模块 四种读写方案全解析
javascript·后端
Larcher1 小时前
从回调地狱到优雅异步:Node.js 文件操作进化史
javascript·后端·架构
熊猫钓鱼>_>2 小时前
Electron:当 Web 技术统治桌面
大数据·前端·javascript·人工智能·架构·electron·agent
江华森2 小时前
Python 实现高德地图找房(三):地图可视化与高德 JS API
开发语言·javascript·python
谭光志2 小时前
AI 是怎么操作浏览器的——browser use 实现原理
前端·javascript·ai编程
用户3074596982073 小时前
GatewayWorker 从零到一完整指南
javascript·php
铁皮饭盒3 小时前
Bun.redis真正的强项
javascript
用户938515635073 小时前
Node.js 路径与文件系统:从基础到异步进化之路
javascript·后端·面试