我对ECMA6类扩展有疑问。 “旧”方式允许我创建一个“类”(基本上是一个函数或对象),然后通过添加到它的原型来“扩展”它。这使得第三方供应商可以为软件编写插件并轻松添加它们。然后,您只需要实例化原始的“类”,它就可以访问已添加到其原型中的所有内容。
在ECMA6中,您可以扩展类,但我没有看到它如何为我提供相同的可能性。如果供应商X扩展了我的Y类,那么现在我必须实例化X而不是Y.如果另一个供应商添加了自己的扩展Z,那么现在我必须知道它们存在然后在X和Z之间进行选择。
我刚开始学习ECMA6所以我可能只是在这里遗漏了一些东西。我如何拥有ECMA6类,让不同的供应商扩展它,然后在运行中获得包含所有功能的实例(原始类和所有扩展)?
谢谢!
答案 0 :(得分:1)
您似乎混淆了继承(使用ES6 extends
语法中的class
关键字)和扩充("通过将新方法混合到其中来扩展"对象)。
我没有看到ES6课程如何为我提供相同的可能性
没有任何改变。 ES6类仍然只是具有.prototype
属性的函数,您可以像往常一样修改它们的原型对象。