这不是关于如何获取键或值
在下面的示例中:
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/