前端笔记二(new与Object.create区别)

2019-03-12  本文已影响0人  沐雨芝录

1.创建对象的方式,Object.create 和new来说明

  var Base = function () {}
  var o1 = new Base();
  var o2 = Object.create(Base);
Object.create =  function (o) {
    var F = function () {};
    F.prototype = o;
    return new F();
};

简单来说就是内部创建一个空函数,将函数的prototype指向传参的对象,然后返回new的实例。

  var o1 = new Object();
  o1.__proto__ = Base.prototype;
  Base.call(o1);

简单来说:新建一个obj对象o1,并且让o1的__proto__指向了Base.prototype对象。并且使用call进行强转作用环境。

总结:

上一篇 下一篇

猜你喜欢

热点阅读