美文网首页
js实现一个new

js实现一个new

作者: LUGY | 来源:发表于2019-10-16 18:09 被阅读0次

new 关键字实现了如下过程
1.创建一个空对象 obj ={}
2.链接到原型 obj.proto = Constructor.prototype
3.绑定this值 Constructor.call(obj)
4.返回新对象

function create(){
  //创建一个空对象
  let obj = new Object();
  //获取构造函数
  let Constructor = [].shift.call(arguments);
  //链接到原型
  obj.__proto__ = Constructor.prototype;
  //绑定this值
  let result = Constructor.apply(obj, arguments);//使用apply,将构造函数中的this指向新对象,这样新对象就可以访问构造函数中的属性和方法
  //返回新对象
  return typeof result === "object" ? result : obj;//如果返回值是一个对象就返回该对象,否则返回构造函数的一个实例对象
}

相关文章

  • js实现new

    new一个函数时发生了什么? 创建一个新的对象将构造函数的原型复制给新对象(this就指向了新对象)执行构造函数中...

  • js学习札记-new关键字

    js 的new关键字解析的过程中引擎执行了很多步骤,我们可以自己写一个仿new的函数来实现new关键字。 说js ...

  • js实现一个new

    new 关键字实现了如下过程1.创建一个空对象 obj ={}2.链接到原型 obj.proto = Const...

  • js基础-new关键字

    js 的new关键字解析的过程中引擎执行了很多步骤,我们可以自己写一个仿new的函数来实现new关键字。 js n...

  • 手写Promise

    基本实现new Promise 和 then /catch方法 Promise.js test.js测试 调用手...

  • js手动实现new

    1,创建一个空对象2,链接到构造函数的原型3,绑定this到该对象4,返回新对象 使用Object.create简化写法

  • 2016/9/21 前端笔试题笔记

    js实现语言继承的核心是 prototypesubTyoe.prototype = new superType()...

  • JS代码,实现动态时钟

    js代码,实现动态时钟 function getMyDate(){ var d=new Date(); var m...

  • js继承

    js继承js 继承-简书 原型链实现集继承 上面的代码实现原型链继承最重要的son.prototype=new f...

  • 使用js传递数组对象

    在js中创建数组,数组中每一个元素是一个对象,实现:var imageList = new Array();lis...

网友评论

      本文标题:js实现一个new

      本文链接:https://www.haomeiwen.com/subject/veiumctx.html