原型和New

new

js 中提供了构造函数创建对象,其实构造函数只是一个简单的函数,它唯一的标志就是使用了 new 关键词

使用 new 关键字调用的就是构造函数。通过构造函数我们可以创建一个对象,其依赖的底层还是通过原型链进行实现

new 做了什么事情

  • 首先创建一个空的对象
  • 将原型对象指向构造函数的原型
  • 指向构造函数代码
  • 返回新对象

接下来我们说说特别的

image 我们可以简单分析一下查看一下 new 出来的最终结果

proto 指向构造函数的原型

获取原型的方式

  • __proto__ 属性
  • 通过构造函数的 prototype 属性
const demo = new Demo() demo.__proto__ === Demo.Property

property 原型对象

new 实现

const mynew =(Obj,....args)=>{ let tem={} tem.__proto__ = Obj.Property; //连接原型 Obj.call(tem,...args); //修改this指向当前新对象 return tem; }

原型

原型是JS中的一种内部机制,每个对象都有一个隐式的[[Prototype]]属性,这个属性指向的对象,即该对象的原型,其主要作用有以下

  • 属性方法共享
  • 实现继承
  • 实现多态