使用'this'获取[object Object]的名称

时间:2017-05-17 12:54:57

标签: javascript object

我正在使用一个我不知道全局对象名称的软件(不,它不是窗口),但我想。

console.log(this)

给了我[对象对象]

for(var property in this) {
    console.log(property + "=" + this.property);
}

给了我'this'的属性。

但是,我需要'this'的名称/ id(我可以访问其他上下文/对象中的属性)。是不是有可能得到那个?

我已经为此searched了,但找不到合适的解决方案。

1 个答案:

答案 0 :(得分:4)

您需要使用bracket notationthis上下文获取属性值。

for(property in this) {
    console.log(property + "=" + this[property]);
    //                       ----^^^^^^^^^^^^^^----
}

您可以使用Object.keys方法获取对象属性,该方法返回属性名称数组。

仅供参考:要在另一个上下文中访问this上下文,请使用在两个上下文中都有范围的变量来引用它(通常可以使用全局变量)。

// initial variable or neglect to make it as global
var self;

/* cotext 1 start */

// define   
self = this;

for(property in self) {
    console.log(property + "=" + self[property]);
}
/* cotext 1 end  */

/* cotext 2 start */

// use `self` to refer the context1         
for(property in self) {
    console.log(property + "=" + self[property]);
} 

/* cotext 2 end  */