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;
}
相关推荐
geovindu1 天前
go: Prototype Pattern
开发语言·设计模式·golang·原型模式
幸运小圣2 天前
Array.prototype.reduce 全面解析【JS方法】
开发语言·javascript·原型模式
两年半的个人练习生^_^4 天前
每日一学:设计模式之原型模式
java·开发语言·设计模式·原型模式
UXbot5 天前
如何用 AI 快速生成完整的移动端 UI 界面:从描述到交付的实操教程
前端·ui·交互·ai编程·原型模式
神の愛6 天前
js的深拷贝和浅拷贝?啥情况讲解下??底层堆栈空间??object.prototype.toString.call(),还有bind,的具体使用?
前端·javascript·原型模式
W.A委员会7 天前
JS原型链详解
开发语言·javascript·原型模式
Rsun045517 天前
5、Java 原型模式从入门到实战
java·开发语言·原型模式
码云数智-大飞9 天前
JavaScript 原型链与继承机制:从底层原理到 ES6 Class 的本质
原型模式
妙蛙种子31110 天前
【Java设计模式 | 创建者模式】 原型模式
java·开发语言·后端·设计模式·原型模式
吴声子夜歌10 天前
ES6——Calss详解
javascript·es6·原型模式