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;
}
相关推荐
syt_10131 天前
js基础之-如何理解js中一切皆对象的说法
开发语言·javascript·原型模式
JavaBoy_XJ5 天前
创建型-原型模式
原型模式
.格子衫.7 天前
JS原型链总结
开发语言·javascript·原型模式
冷崖7 天前
原型模式-创建型
设计模式·原型模式
老朱佩琪!8 天前
Unity原型模式
开发语言·经验分享·unity·设计模式·原型模式
zhougl99610 天前
区分__proto__和prototype
开发语言·javascript·原型模式
询问QQ:1808095117 天前
永磁同步电机参数辨识那些事儿
原型模式
小白勇闯网安圈17 天前
wife_wife、题目名称-文件包含、FlatScience
javascript·python·网络安全·web·原型模式
还是大剑师兰特18 天前
ES6 class相关内容详解
es6·原型模式·大剑师
ZouZou老师18 天前
C++设计模式之原型模式:以家具生产为例
c++·设计模式·原型模式