在 ECMAScript 2015 中引入了 class 和继承的概念,这使得 JavaScript 的面向对象编程更加规范和易于理解。在 ECMAScript 2019 中,class 和继承得到了进一步的加强和优化。本文将介绍 ECMAScript 2019 中 class 和继承的新特性,以及如何更好地理解和应用它们。
class 的新特性
class 的私有字段
在 ECMAScript 2019 中,class 支持私有字段。私有字段只能在 class 内部访问,外部无法访问。私有字段以 # 开头。
-- -------------------- ---- ------- ----- ------ - ------ ----------------- - ---------- - ----- - --------- - ------ ----------- - - ----- ------ - --- -------------- ------------------------------ -- --- -------------------------- -- -------- ------------
class 的静态私有字段
在 ECMAScript 2019 中,class 支持静态私有字段。静态私有字段只能在 class 内部静态方法访问,外部无法访问。静态私有字段以 # 开头,并且在 static 关键字之后声明。
-- -------------------- ---- ------- ----- ------ - ------ ----- ------ ----------- - --------- - ---- - ------ -------- - ------ ---------- - - ------------------ ----------------------------- -- -- ------------------------- -- ------- --------------
class 的可选 catch 绑定
在 ECMAScript 2019 中,class 的 catch 子句支持可选绑定。如果 catch 子句中不需要绑定错误对象,可以省略绑定变量。
try { // ... } catch { // ... }
继承的新特性
继承原生对象
在 ECMAScript 2019 中,可以继承原生对象,比如 Array、Date 等。
class MyArray extends Array { // ... } const myArray = new MyArray(); myArray.push(1, 2, 3); console.log(myArray.length); // 3
super 的引用
在 ECMAScript 2019 中,可以在子类中使用 super 引用父类的静态方法和静态属性。
-- -------------------- ---- ------- ----- ------ - ------ --------- - ------ --------- - - ----- --- ------- ------ - ------ --------- - ------ --------------- - -- ----- - - --------------------------- -- ------- ---
继承的可选 catch 绑定
在 ECMAScript 2019 中,继承也支持可选 catch 绑定。
-- -------------------- ---- ------- ----- ------- ------- ----- - -- --- - --- - -- --- - ----- --- - -- -- ---------- -------- - -- --- - ---- - -- --- - - --- - -- --- - ----- - -- --- -
使用示例
下面是一个使用 class 和继承的示例,实现一个简单的计算器。
-- -------------------- ---- ------- ----- ---------- - ------------- - ------------ - -- - --- -------- - ------ ------------- - ---------- - ------------ -- ------ ------ ----- - --------------- - ------------ -- ------ ------ ----- - --------------- - ------------ -- ------ ------ ----- - ------------- - ------------ -- ------ ------ ----- - - ----- -------------------- ------- ---------- - -------- - ------------ - ---------------------- --- ------ ----- - ----- - ------------ - ----------------------- ------ ----- - ----- - ------------ - ----------------------- ------ ----- - - ----- ---------- - --- ----------------------- ----- ------ - -------------------------------------------------------------------------- -------------------- -- ----------
总结
ECMAScript 2019 中的 class 和继承得到了新特性的加强和优化,使得 JavaScript 的面向对象编程更加规范和易于理解。本文介绍了 ECMAScript 2019 中 class 和继承的新特性,以及如何更好地理解和应用它们。希望本文对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65783951d2f5e1655d220898