当前位置: 代码迷 >> 综合 >> call方法和new对象的关系
  详细解决方案

call方法和new对象的关系

热度:45   发布时间:2024-02-09 14:46:25.0

call只能改变this的指向,而使用new对象不仅会自动调用call方法改变这个对象的this指向,而且还会继承构造函数的原型。

var fn = function(a){this.a = a; } fn.prototype = {draw:function(){console.log(this.a);} }var obj = new fn(10); obj.draw(); //10

在obj在没有找到draw函数,所以它向它的原型链中查找。

简单版

var fn = function(a){this.a = a; } var obj = new fn();

相当于这样

var fn = function(a){this.a = a; } var obj = {}; 继承 obj.__proto__ = fn.prototype; 改变this指向 fn.call(obj);

 

  相关解决方案