ECMAScript 2021:JS 中的新 feature -- 双冒号操作符 (::) 详解

在 ECMAScript 2021 中,JavaScript 引入了一种新的语法特性--双冒号操作符(::)。这个新特性有什么作用呢?我们在本文中会详细介绍。

双冒号操作符的作用

双冒号操作符(::)可以用来绑定一个函数中的 this 对象。在 JavaScript 中,this 的值通常是在函数被调用的时候确定的。通常情况下,this 的值是由调用该函数的对象所决定的。但是,有些时候我们需要在函数调用之前就确定 this 的值。

在过去,我们通常采用 bind 等方法来改变函数体内 this 的指向。而现在,我们可以使用双冒号操作符(::)来达到同样的效果。下面是一个示例:

在上面的代码中,我们使用双冒号操作符(::)来将 Person 对象的 sayHello 方法绑定到 person 变量上。这样,我们就可以在调用 greeting 函数时,让 sayHello 方法中的 this 指向 person 对象。

双冒号操作符的语法规则

双冒号操作符(::)有以下两种语法形式:

  • 对象::函数: 用于将对象的方法绑定到一个变量上。
  • 类::静态函数: 用于引用一个类的静态函数。

在表达式对象::函数中,我们将对象和函数之间用双冒号(::)连接起来。这样可以让我们在调用该函数时,将对象作为函数的上下文(this)。

而在表达式类::静态函数中,我们将类和静态函数之间用双冒号(::)连接起来。这样可以让我们在调用该静态函数时,不需要实例化该类。

双冒号操作符的兼容性

双冒号操作符(::)是 ECMAScript 2021 中新增的特性,因此在一些较老的浏览器中可能无法使用。如果你想在现代浏览器以及旧版浏览器上保持兼容,可以使用 Babel 或 TypeScript 等工具来将双冒号操作符(::)转换成常规的方法调用。

总结

在 ECMAScript 2021 中,JavaScript 引入了双冒号操作符(::)这个新特性。使用双冒号操作符(::),我们可以让函数在被调用之前就确定 this 的值,并且不需要实例化类就可以引用类的静态函数。虽然目前双冒号操作符(::)的兼容性还不是很好,但是在未来的 JavaScript 开发中,它将成为我们开发更好、更简洁代码的强大工具。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65402b337d4982a6eb9b2119


纠错
反馈