javascript - 什么类型的 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.y
b.y
x
y
a
b
字母a
和b
行不是-
static distance(a, b)
在技术上被称为“参数”,它被明确定义为属性以外的东西。并且由于它们是“参数”,因此“属性”一词将不适用,因此点符号的官方定义不适用。
参数的定义:参数是作为函数定义的一部分列出的变量
属性的定义: 具有可写或不可写的值
点符号的定义:在 JavaScript 中,可以使用点符号访问属性...
解决方案
这个问题是由于缺乏对对象实例化的工作原理以及如何在静态方法中引用该对象的理解。a
和b
在线_
static distance(a,b)
不是像我想的那样简单地采用单个值的典型参数。他们实际上在创建所述对象时接收到完整的实例化对象引用。因此,点表示法a.x
确实是对分配给对象内部名称或属性的值的“点表示法”引用。另外我发现令人困惑的是如何
b.x
和b.y
在第一个对象实例化时尚未创建。显然,诸如静态方法之类的“辅助方法”以编程方式知道要等到所有参数都被填充后,该方法才能产生返回结果。它通过将所有参数填充为对象来知道这一点。
推荐阅读
- xquery - xquery if then 语句问题
- python - 在 Python 中过早销毁的 SWIG 数组/类
- angular6 - 将 Angular cli 更新到 6.0.0 后无法在 Angular 6 中创建新项目
- matlab - .m 用于将多个 .c 和 .h 文件从 diff 文件夹移动到单个文件夹的脚本
- objective-c - 在 NSString 中间包含一个变量
- amazon-web-services - Amazon CloudSearch:空闲时间后的第一次搜索很慢
- python - Python按钮超时
- c# - 为 Odata 使用不同的数据源
- php - 在 PHP 中从 html 中获取文本
- angular - 角度 5 在 POST 请求中出现错误。发送标头参数不起作用