javascript – Babel.js如何创建编译ES2015的类声明?

前端之家收集整理的这篇文章主要介绍了javascript – Babel.js如何创建编译ES2015的类声明?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前的任务是将 JavaScript组件ES5转换为ES6(使用Babel.js编译).在使用类和Babel.js之前,我们使用原型来从其他组件获取函数.
com.company.js.ComponentA.prototype = new com.company.js.utils.UltraFunctions()

现在使用Babel.js并将ComponentA转换为类

class ComponentA {
  contructor(){
    this.property = "Proppy";
  }
  doStuff() {
    console.log("doStuff");
  }
}

现在当我在实例化它之后分析这个组件时会发生什么,现在我看到了两个级别的原型.第一个原型保存“属性” – 第二个原型嵌套在第一个原型中,在这种情况下保存所有功能“doStuff”.这带来了传统组件的问题,这些组件不应该转换为类(尚未).因为这些组件是通过二级原型放入的,所以它们会覆盖原型,该原型包含Babel.js编译的“合成”类的功能.

我不是要求解决方案.我只是想确定Babel.js将类转换为ES5 JavaScript的假设是否正确.特别是如上所述创建两级原型的事实.

更新

对不起,我明白了第一个原型!正如@ T.J.Crowder在评论中所说,第一个是实例 – 因此“属性”被粉碎到实例中,而函数通过原型插入到“第一”级原型中.所以,用第二级替换我说的第一级和第一级到实例.

解决方法

I just want to discuss how Babel.js converts a class to ES5 Javascript.

Babel使用了很多辅助函数,或者我会说“只看看已编译的结果”.

猜你在找的JavaScript相关文章