如果它们只是语义糖,我如何在 es5 中获得以下 es6 脚本的相同结果?
class MyFunc extends Function{}
new MyFunc('alert("hi guys")')()
和
class MyArr extends Array{}
var myarr = new MyArr(1,2,3,4)
myarr[2] = "a value"
myarr.push("an other value")
最佳答案
不,它们只是主要的语法糖。它们可以完成 ES5 中类模式所做的所有事情,但还不止于此。
对象如何实例化的细节,特别是在子类中,已经过彻底检查,现在允许像你的问题一样对 Function
和 Array
等内置函数进行子类化。这在 ES5 中是不可能的。有关详细信息,请查看 What is "new.target"? 、 What does super() actually do in constructor function? 和 What do subclass constructor objects inherit from? 。
关于javascript - es6 类真的是语义糖吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48036853/