我将以字符串形式动态转换对象的名称。
我将对象的名称转换为字符串以动态地检索它。 所需的输出:
“ CartModel”
当前返回我
“ [对象对象]”
这是我的对象:
var CartModel= {
userID:{
beverage:{
// value
},
sandwich:{
},
treat:{
},
dessert:{
}
}
}
console.log('"' + CartModel + '"');
任何提示都会很棒, 谢谢
答案 0 :(得分:1)
您要一个对象返回分配给它的变量的名称。这是不可能的。对象不知道为其分配的变量的名称。某些对象可以分配给多个变量,也有可能没有将对象分配给任何变量。
您可以通过覆盖toString()
来定制将对象转换为字符串时显示的值。例如
CartModel.toString = function () {
return 'CartModel';
}
现在,如果您致电
console.log('"' + CartModel + '"');
"CartModel"
将显示在控制台中:
答案 1 :(得分:0)
如果要以字符串形式打印整个对象,则可以使用JSON.stringify(obj)方法
var obj = {
name:"abc",
value:{
a:1,
b:2
}
}
console.log(JSON.stringify(obj));
编辑: 在打印对象名称的情况下,可以使用new关键字创建对象的类(函数),并使用构造函数打印名称
function test(x, y){
this.x = x;
this.y = y;
}
var abc = new test(1,2);
console.log(abc.constructor.name);
答案 2 :(得分:0)
如果它是函数而不是对象,则可以检索其名称。
或者您可以提供toString
方法,即var User = { toString: () => 'some name' };
然后,如果执行调用对象toString方法的操作,它将起作用。