为何有的时候使用 ` Array#sort()` ,这个#代表什么?
在编程术语中,# 符号通常用来表示实例方法或属性,而 . 则用于静态方法或属性。然而,在 JavaScript 的官方文档或者标准语法中,并没有使用 # 来区分实例方法和静态方法的习惯。
实际上,JavaScript 使用的是点符号 (.) 来访问对象的方法和属性,无论是静态的还是实例的。
对于 Array#sort() 这样的表达方式,它并不是 JavaScript 语言本身的语法,而是某些文档或社区为了更清晰地传达信息所采用的一种约定。具体来说:
-
Array#sort():这种写法意味着sort是Array类型(构造函数)的实例方法。也就是说,你需要先创建一个数组实例,然后才能调用该实例上的sort方法。例如:const arr = [1, 3, 2]; arr.sort(); // 调用了实例方法 -
如果是静态方法,可能会写作
Array.from()或者Array.of(),这里没有使用#,因为它们是直接通过Array构造函数本身调用的,而不是通过其实例。
因此,当你看到类似 Array#sort() 的表述时,可以理解为这是一种非正式的、便于阅读的方式,用来强调 sort 方法应该在 Array 的实例上调用。
在实际的 JavaScript 代码中,你会像平常一样使用点符号来访问这些方法:
let myArray = [4, 1, 3, 2];
myArray.sort(); // 正确的 JavaScript 语法
总结一下,# 在这里并不属于 JavaScript 的语法元素,而是某些文档或指南中用来区分实例方法与静态方法的一种标记方式。
在真实的代码编写过程中,请按照常规的 JavaScript 语法规范使用点符号 (.) 来访问对象的方法和属性。

浙公网安备 33010602011771号