new 操作符实现

new 在 JavaScript 中是实例化一个对象的操作符

实现一个 new

  1. 生成了一个新的对象
  2. 链接到原型链
  3. 绑定 this
  4. 返回新的对象

在调用 new 的过程中会发生以上四件事情,我们也可以试着来自己实现一个 new

function create() {
  // 创建一个对象
  const obj = new Object()
  // 获得构造函数
  let Con = [].shift.call(arguments)
  // arguments 是一个伪数组,借用 Array.prototype 上的方法转换成真正的数组
  // let args = [].slice.call(arguments)

  // 链接原型
  obj.__proto = Con.prototype
  // 绑定 this ,执行构造函数
  let result = Con.apply(obj, arguments)
  // 确保 new 出来的是个对象
  return typeof result === 'object' ? result : obj
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,139评论 0 6
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,149评论 0 21
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,626评论 1 45
  • 感恩慈悲上师三宝及诸佛菩萨加持庇佑 感恩佛光普照大地 感恩我能遇见正法 感恩此生能得上师庇佑 谢谢 谢谢 感恩清晨...
    王小仙的天涯阅读 89评论 0 0
  • 最怕喜欢上一个人的笑容,会止不住想念,连微笑也会从脑海浮现到嘴角。
    Terry陳阅读 247评论 0 0