Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取对象';使用JS将名称转换为字符串形式?_Javascript_Object - Fatal编程技术网

Javascript 如何获取对象';使用JS将名称转换为字符串形式?

Javascript 如何获取对象';使用JS将名称转换为字符串形式?,javascript,object,Javascript,Object,例如,我这里有一个对象 var obj = {a:1,b:2,c:3} 如何将obj'name添加到字符串“obj”?您不能。一个对象可以用任意数量的变量命名,例如 var obj = {a:1,b:2,c:3}; var obj2 = obj; var otherobj = obj2; 所有这些变量都引用同一个对象——它没有特定的名称。您无法访问该变量的名称 但是,您可以利用javascript的优势,这取决于您的用例。由于每个函数对象都有“name”属性,该属性设置为函数的名称,因此可以

例如,我这里有一个对象

var obj = {a:1,b:2,c:3}

如何将obj'name添加到字符串“obj”?

您不能。一个对象可以用任意数量的变量命名,例如

var obj = {a:1,b:2,c:3};
var obj2 = obj;
var otherobj = obj2;

所有这些变量都引用同一个对象——它没有特定的名称。

您无法访问该变量的名称

但是,您可以利用javascript的优势,这取决于您的用例。由于每个函数对象都有“name”属性,该属性设置为函数的名称,因此可以执行以下操作:

var obj = function obj(){ return {a:1,b:2,c:3}; };
console.log("obj.name is: " + obj.name);

> "obj.name is obj"
请注意,我为
obj
分配了一个命名函数,而不是更常见的匿名函数——因为匿名函数没有名称值

var obj = function(){ return {a:1,b:2,c:3}; };
console.log("obj.name is: " + obj.name); 

> "obj.name is: "
这样,您就有了一个名称值可作为字符串访问的对象。但有一个警告。如果要访问该值,必须调用函数:

console.log(obj());

> {a: 1, b: 2, c: 3}
console.log(obj);

> function obj(){ return {a:1,b:2,c:3}; }
这是因为变量引用的是函数,而不是函数返回的值:

console.log(obj());

> {a: 1, b: 2, c: 3}
console.log(obj);

> function obj(){ return {a:1,b:2,c:3}; }
请注意,此技术仍然没有给出变量的名称,因为您可以将
obj
分配给另一个名为
jbo
的变量:

var obj = function obj(){ return {a:1,b:2,c:3}; };
console.log("obj.name is: " + obj.name);
var jbo = obj;
console.log("jbo.name is: " + jbo.name);

> "obj.name is obj"
> "jbo.name is obj"

请参见:对象没有名称。只有您定义的变量是对内存中该对象的引用。既然你自己声明了这个变量,你应该知道它的名字。所以只要这样做:
var myString=“obj”@nice你为什么要这么做?