什么类型的JavaScript术语/定义适合这种情况?

什么类型的JavaScript术语/定义适合这种情况?,javascript,methods,Javascript,Methods,我在阅读时遇到了一个赋值的例子,但我不理解。由于页面只是在解释其他内容(静态方法),因此没有解释有问题的行。我对它的工作原理和它的正式名称很感兴趣,这样我可以进一步研究它 class Point { constructor(x, y) { this.x = x; this.y = y; } static distance(a, b) { const dx = a.x - b.x; const dy = a.y - b.y; return Ma

我在阅读时遇到了一个赋值的例子,但我不理解。由于页面只是在解释其他内容(静态方法),因此没有解释有问题的行。我对它的工作原理和它的正式名称很感兴趣,这样我可以进一步研究它

 class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }
  static distance(a, b) {
    const dx = a.x - b.x;
    const dy = a.y - b.y;
    return Math.hypot(dx, dy);
  }
}
我不清楚的是
a.x
b.x
a.y
b.y
。我不会考虑这个点符号,因为点符号被定义为“在JavaScript中,可以使用点符号来访问属性……”。因此,如果这不是点表示法,那么哪个术语适用于分配给
a
b
x
y
的值

字母
a
b
不一致吗-

static distance(a, b)
从技术上讲,它被称为“参数”,明确定义为属性以外的其他东西。由于它们是“参数”,那么“属性”一词将不适用,因此点符号的官方定义不适用

参数定义:参数是作为函数定义的一部分列出的变量

属性定义:具有一个值,该值可能是可写的,也可能不是可写的


点表示法的定义:在JavaScript中,可以使用点表示法访问属性…

这个问题是因为不了解对象实例化的工作原理以及如何在静态方法中引用该对象。
a
b
在线

static distance(a,b)
并不是像我想的那样简单地接受单个值的典型参数。在所述对象创建时,它们实际上正在接收完整的实例化对象引用。因此,
a.x
的点表示法实际上是一种“点表示法”,指的是分配给对象内部名称或属性的值。我还感到困惑的是怎么做

b.x
b.y


在第一个对象实例化时还没有创建。显然,静态方法之类的“助手方法”在编程上知道,在方法生成返回结果之前,必须等待所有参数都被填充。它知道这一点,因为它的所有参数都用对象填充。

这就是点符号;例如,您正在访问
a
上的
x
属性。第二次确认:这是点表示法。是什么让你不想考虑这一点?第三,它是点符号。我看,我认为这个定义与这个例子不匹配,但我想是的。我只是认为“A”和“B”不是属性,但是它们在哪里。这就是我问的原因。我从未见过a.x之前的任何东西设置的“a”参数或“b”参数,等等。“不是我所认为的简单取单个值的典型参数”——它们是。对象是单个值。这里的参数与任何其他函数的参数工作相同。@Ry-即使在上面的示例中,我也清楚地看到实例化的对象有两个属性,其中有两个值。那么,如何可能只将1个值传递给a的参数呢?我认为从语法上来说,这可以描述为总共有3个值,对象名和与之相关的2个值。此外,我的回答确实证实了这是“点符号”,这是我从一开始就提出的一个具体问题。其他人的正确回答应该比这更深入,解决让你认为它最初不是点符号的根本误解……除了没有人能弄明白这一点,因此发表了评论。如果你的自我回答不包括这些,那没关系——它不应该包括一堆客观上错误的东西,比如
a
b
不是“典型参数”,或者根本不存在“知道等待”的“助手方法”概念。“总共3个值、对象名称和与之相关的2个值”可能是在某些上下文中描述它的一种有用方法,但在“不是简单地接受单个值的典型参数”的上下文中,这不是一个正确的区别。@Ry-我理解并感谢您!我将努力更好地理解这个主题