js中的new方法

new方法的作用:创建一个实例对象,并继承原对象的属性和方法;

new对象内部操作:

1,创建一个新对象,将新对象的proto属性指向原对象的prototype属性;

2,构造函数执行环境中的this指向新对象;

3,执行构造函数中的代码;

4,若构造函数返回的是一个对象则返回此对象,若非,则返回新创建的对象;

此过程完成了创建对象、对象继承、属性初始化过程,被称为隐式原型继承;

手写实现new:

javascript 复制代码
function new_(Constructor,args){
    var obj = Object.create(null);// 创建一个新对象
    obj.__proto__ = Consturct.prototype;// 将旧对象原型赋值给新对象
    var result = Constructor.apply(obj, args);// 将this指向新对象
    return typeof result === 'object' ? result : obj;
}
相关推荐
冰糖雪梨dd1 天前
JS中new的过程发生了什么
开发语言·javascript·原型模式
white-persist4 天前
SQL 注入详解:从原理到实战
前端·网络·数据库·sql·安全·web安全·原型模式
white-persist5 天前
Python实例方法与Python类的构造方法全解析
开发语言·前端·python·原型模式
魔云连洲7 天前
深入解析:Object.prototype.toString.call() 的工作原理与实战应用
前端·javascript·原型模式
white-persist9 天前
Burp Suite模拟器抓包全攻略
前端·网络·安全·web安全·notepad++·原型模式
青草地溪水旁9 天前
第五章:原型模式 - 克隆大法的大师
c++·设计模式·原型模式
white-persist9 天前
【burp手机真机抓包】Burp Suite 在真机(Android and IOS)抓包手机APP + 微信小程序详细教程
android·前端·ios·智能手机·微信小程序·小程序·原型模式
XiaoLeisj13 天前
【SpringAI】第四弹:深入解析 Rag 检索增强工作流程、最佳实践和调优
阿里云·原型模式·rag·spring ai·灵积大模型
CoderIsArt14 天前
四种对象型创建模式:抽象工厂、 build模式、原型ProtoType与单例模式
单例模式·原型模式
Misnearch15 天前
原型模式了解
原型模式