为什么在es6里面,可以直接访问构造函数的原型上的方法

来源:7-3 -3 扩展接口 - 混合对象实现+ demo 编写

安德鲁的小围巾

2021-10-20

function createInstance(): AxiosInstance {
  const context = new Axios()
  const instance = Axios.prototype.request.bind(context)

  extend(instance, context)

  return instance as AxiosInstance
}

这里有点疑问,这个Axios是es6定义的类,为什么可以通过构造函数的原型访问request方法,我试了一下es5就不能这样直接调用,必须得Axios.prototype.request = function(){…} 这样定义才可以,那既然es6里面可以直接通过原型访问所有方法,那么 const context = new Axios() 这段代码的作用 是不是仅仅就是为了给request绑定context呢?

写回答

1回答

ustbhuangyi

2021-10-20

因为设置了 target 是 es5,那么 Class 也会编译成 es5 的 function 来实现类

0
0

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程