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_指向构造函数的原型
相关推荐
D_C_tyu7 小时前
Vue3 + Element Plus | el-table 表格获取排序后的数据
javascript·vue.js·elementui
天外天-亮7 小时前
v-if、v-show、display: none、visibility: hidden区别
前端·javascript·html
沿着路走到底9 小时前
JS事件循环
java·前端·javascript
子春一29 小时前
Flutter 2025 可访问性(Accessibility)工程体系:从合规达标到包容设计,打造人人可用的数字产品
前端·javascript·flutter
jlspcsdn10 小时前
20251222项目练习
前端·javascript·html
拉不动的猪12 小时前
回顾计算属性的缓存与监听的触发返回结果
前端·javascript·vue.js
树欲静而风不止慢一点吧13 小时前
小米手环9应用/游戏开发快速入门
前端·javascript·小程序
用户3130500862713 小时前
JavaScript中的迭代器和生成器
javascript
Crystal32813 小时前
图片懒加载
前端·javascript·代码规范