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;
}
相关推荐
想吃火锅10056 天前
【前端手撕】instanceof
前端·javascript·原型模式
UXbot6 天前
帮助企业低门槛开展AI应用开发的平台推荐
前端·低代码·ui·交互·产品经理·原型模式·web app
UXbot6 天前
如何选择适合公司项目的UI设计工具?企业选型指南
前端·低代码·ui·团队开发·原型模式·设计规范·web app
UXbot6 天前
原型设计工具如何帮助新人快速进入产品行业?
前端·低代码·ui·交互·团队开发·原型模式·web app
sunny.day11 天前
js原型与原型链
开发语言·javascript·原型模式·js原型链
UXbot11 天前
AI网页开发工具能替代工具吗?5大平台对比
前端·人工智能·低代码·ui·原型模式·web app
weixin_3077791312 天前
从“大海捞针”到“主动推理”:AI如何重塑云原生故障诊断的根因链
开发语言·人工智能·算法·自动化·原型模式
swordbob12 天前
prototype 注入到 singleton 里,prototype是否还是线程安全的
安全·spring·单例模式·原型模式
isNotNullX13 天前
企业数据中台建设,ETL工具选错了会踩哪些坑?
数据仓库·etl·原型模式
半个烧饼不加肉13 天前
JS 底层探究-- 普通函数和构造函数
开发语言·javascript·原型模式