首页 > 解决方案 > 什么类型的 JavaScript 术语/定义适合这个?

问题描述

我正在阅读有关 JavaScript 类的 MDN 文档,并遇到了一个我不理解的分配值的示例。有问题的行没有解释,因为该页面只是在解释其他内容(静态方法)。虽然我对它的工作原理以及它的正式名称很着迷,以便我可以进一步研究它。

 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和. 我不会考虑这种点表示法,因为点表示法被定义为“在 JavaScript 中,可以使用点表示法访问属性......”。因此,如果这不是点表示法,那么什么术语将适用于和被分配给的值和?a.yb.yxyab

字母ab行不是-

static distance(a, b)

在技​​术上被称为“参数”,它被明确定义为属性以外的东西。并且由于它们是“参数”,因此“属性”一词将不适用,因此点符号的官方定义不适用。

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

属性的定义: 具有可写或不可写的值

点符号的定义:在 JavaScript 中,可以使用点符号访问属性...

标签: javascriptmethods

解决方案


这个问题是由于缺乏对对象实例化的工作原理以及如何在静态方法中引用该对象的理解。ab在线_

static distance(a,b)

不是像我想的那样简单地采用单个值的典型参数。他们实际上在创建所述对象时接收到完整的实例化对象引用。因此,点表示法a.x确实是对分配给对象内部名称或属性的值的“点表示法”引用。另外我发现令人困惑的是如何

b.xb.y

在第一个对象实例化时尚未创建。显然,诸如静态方法之类的“辅助方法”以编程方式知道要等到所有参数都被填充后,该方法才能产生返回结果。它通过将所有参数填充为对象来知道这一点。


推荐阅读