美文网首页
new的简单实现

new的简单实现

作者: 心大的少年 | 来源:发表于2019-08-27 20:26 被阅读0次

    1.创建一个空的简单JavaScript对象(即{});
    2.链接该对象(即设置该对象的构造函数)到另一个对象 ;
    3.将步骤1新创建的对象作为this的上下文 ;
    4.如果该函数没有返回对象,则返回this

    也就是new运算符做的操作就是创建新对象,将新对象的原型指向被new的原型链,并且将this指向新对象
    所以可以借用Oject.create这个方法创建一个新的对象,并且修改原型的指向

    Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的proto

    function father(name, age) {
      this.name =  name;
      this.age = age;
    }
    father.prototype.con = function() {
      console.log(this.name, this.age);
    }
    function MyNew(fn, ...arg) {
       let newObj = Object.create(fn.prototype);
       fn.call(newObj, ...arg);
    }
    let son = MyNew(father, 'name', 123);
    son.con(); // 'name' 123
    

    相关文章

      网友评论

          本文标题:new的简单实现

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