JS如何使用"this"关键字查找对象的名称?



我有一个名为dogs:的对象

const dogs = {
name: "Murch",
age: 8,
says(){
console.log(`My name is ${this.name}.`);
}
};

问题是:我如何打印";狗;使用";这个";关键字?

例如,如果i

console.log(typeof this);

我得到";对象";但我想知道物体的名字。

您无法获取对象所分配的变量。

它可能被分配给多个变量,或者根本不分配给任何变量。

const dogs = {
name: "Murch",
age: 8,
says(){
console.log(`My name is ${this.name}.`);
}
};
const cats = dogs;
cats.says();

({
name: "Murch",
age: 8,
says(){
console.log(`My name is ${this.name}.`);
}
}).says();

在某些情况下,您可以搜索可能指定对象的位置并查找匹配项,但const变量不是其中之一。

const dogs = {
name: "Murch",
age: 8,
says() {
console.log(`My name is ${this.name}.`);
},
findme() {
const match = Object.entries(animals).filter(([key, value]) => value === this).pop();
if (match) console.log(match[0]);
}
};
const animals = {
dogs,
cats: null,
bats: null,
rabbits: null
};
dogs.findme();

最新更新