码迷,mamicode.com
首页 > 编程语言 > 详细

【JavaScript】实现new操作符

时间:2020-06-04 19:35:47      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:rgs   object   操作符   typeof   ror   date   函数   ===   eof   

首先我们要知道new操作符做了什么

  1. 创建一个空的对象,即{}
  2. 空对象的原型指向构造函数的原型,即设置该对象的构造函数
  3. 让this指向新创建的空对象,即新创建的对象作为this的上下文
  4. 判断返回值的类型,如果是值类型就是返回新的创建对象,如果是引用类型就返回引用类型的对象。(如果没有返回对象类型object包括Functoin, Array, Date, RegExg, Error),那么new表达式中的函数调用将返回该对象的引用)
function copyNew(obj,...args){
  let newObj={};
  newObj.__proto__=obj.prototype;
  // => Object.setPtototypeOf(newObj, obj.prototype)
  // 上面的两步可以合为一步 let newObj=Object.create(obj.prototype)
  let result=obj.apply(newObj, args);
  return typeof result ===‘object‘ ? result : newObj;
  // =>return result instanceof Object ? result : newObj  
}

 

【JavaScript】实现new操作符

标签:rgs   object   操作符   typeof   ror   date   函数   ===   eof   

原文地址:https://www.cnblogs.com/sloanlv/p/13045449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!