如果它们只是语义糖,我如何在 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 中类模式所做的所有事情,但还不止于此。

对象如何实例化的细节,特别是在子类中,已经过彻底检查,现在允许像你的问题一样对 FunctionArray 等内置函数进行子类化。这在 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/

10-13 00:40