javascript - 如何在 JavaScript 中获取对象的对象名称

标签 javascript object

这不是关于如何获取键或值

在下面的示例中:

var exampleObject = {startIndex: 1, stopIndex: 2};

我怎样才能得到这个对象的确切名称“exampleObject”?我试过 exampleObject.constructor.name 但我得到的结果是“Object”。

最佳答案

你不能。*

首先,多个变量可以指向同一个对象。变量只是引用,不是容器。一个对象没有一个真正的名字。这是一个例子:

function makeExample() () {
  var x = {startIndex: 1, stopIndex: 2};
  var y = x;
  return y;
}

var z = makeExample();

在上面的代码中,对象的名称应该是什么? x, y, z?所有这些变量都不包含对象的副本,它们指向同一个对象。 exampleObject 是变量名,不是对象名。

变量名只是程序员使用的标签,而不是代码。这与 property 不同,property 是存储在对象内部并由 key 标识的数据,key 可以是字符串,也可以是符号。如果对象需要有一个名字,那么它应该是它自己的属性的一部分:

var exampleObject = { name: "exampleObject" };

*从技术上讲,在不作为模块执行的脚本的全局范围内使用 var 创建的任何变量都将添加到 window 对象。那是过去的遗物,你不应该依赖它 - 事实上,现代 JS 代码应该使用 let 来创建没有这种行为的变量。

关于javascript - 如何在 JavaScript 中获取对象的对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54717716/

相关文章:

javascript - 非方形透明图标图像的悬停效果

Java:如何按属性对对象列表进行排序和分组

javascript - 如何从 JavaScript 通过 TCP 套接字进行通信?

java - 修复从 Object 到 ComboBox<String> javafx 的未检查强制转换

javascript - array.push() 不是我想要做的

object - 经典ASP-何时关闭记录集

java - 为什么这个对象数组中的每个元素都会被最后一个对象覆盖?

javascript - 如何检查不存在的类? (按类名获取元素)

javascript - 使用 Javascript 将验证写入 Cordova BLE 错误

javascript - 最不干涉的 AJAX 构建器/图形开发环境