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;
}
相关推荐
等一场春雨1 天前
Java设计模式 六 原型模式 (Prototype Pattern)
java·设计模式·原型模式
HYUJKI7 天前
@Scope(“prototype“)
java·开发语言·单例模式·原型模式
编程星空8 天前
原型与原型链
原型模式
程序研9 天前
JAVA之原型模式
java·原型模式
workflower10 天前
CHAIN OF RESPONSIBILITY(职责链)—对象行为型模式
需求分析·责任链模式·uml·原型模式·软件需求·统一建模语言
power-辰南10 天前
设计模式之原型模式
原型模式
果冻~10 天前
构造函数的原型&原型链
开发语言·javascript·原型模式
计算机小混子10 天前
C++实现设计模式---原型模式 (Prototype)
c++·设计模式·原型模式
勇敢一点♂10 天前
设计模式学习手册(四)(原型模式)
学习·设计模式·原型模式
*猪耳朵*12 天前
Java 原型模式、建造者模式、单例模式
java·建造者模式·原型模式·設計模式