构造函数中new操作符都做了什么

98 阅读1分钟
  • 构造函数中没有显示的创建Object对象, 实际上后台自动创建了一个空对象
  • 直接给this对象赋值属性和方法, this即指向创建的对象
  • 没有return返回值, 后台自动返回了该对象
  • 该对象继承构造函数的原型

模拟构造函数实现

    var Book = function(name) {

        this.name = name;

    }

正常用法

    var java = new Book('Master Java');

使用代码模拟,在非IE浏览器中测试,IE浏览器不支持

    var python = {};
    python.__proto__ = Book.prototype;
    Book.call(python, 'Master Python');