【发布时间】:2019-05-27 20:51:08
【问题描述】:
我在阅读MDN documentation on JavaScript classes 时遇到了一个我不理解的赋值示例。有问题的行没有解释,因为该页面只是在解释其他内容(静态方法)。我对它的工作原理以及官方名称很着迷,以便我可以进一步研究它。
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上的x属性。 -
第二次确认:这是点符号。是什么让你不想这么想?
-
第三个,是点符号。
-
我明白了,我认为定义与此示例不匹配,但我想是的。
-
我只是认为“a”和“b”不是属性,而是参数。这就是我问的原因。我从未见过 a.x 之前的任何东西设置的“a”参数或“b”参数等等。
标签: javascript methods