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;
}
相关推荐
Adellle9 小时前
5. 原型模式
原型模式
乐悠小码3 天前
Java设计模式精讲---04原型模式
java·设计模式·原型模式
火鸟25 天前
给予虚拟成像台尝鲜版十,完善支持HTML原型模式
原型模式·通用代码生成器·给予虚拟成像台·给予·html原型模式·快速原型·rust语言
乙己4077 天前
设计模式——原型模式(prototype)
设计模式·原型模式
仙人掌_lz7 天前
Multi-Agent的编排模式总结/ Parlant和LangGraph差异对比
人工智能·ai·llm·原型模式·rag·智能体
午安~婉9 天前
javaScript八股问题
开发语言·javascript·原型模式
火鸟212 天前
给予虚拟成像台尝鲜版九,支持 HTML 原型模式
html·原型模式·通用代码生成器·给予虚拟成像台·给予·html原型模式·快速原型
数据知道13 天前
Go语言设计模式:原型模式详解
设计模式·golang·原型模式
JS.Huang13 天前
【JavaScript】构造函数与 new 运算符
开发语言·javascript·原型模式
Yeniden13 天前
设计模式>原型模式大白话讲解:就像复印机,拿个原件一复印,就得到一模一样的新东西
java·设计模式·原型模式·1024程序员节