我正在使用一个我不知道全局对象名称的软件(不,它不是窗口),但我想。
console.log(this)
给了我[对象对象]
for(var property in this) {
console.log(property + "=" + this.property);
}
给了我'this'的属性。
但是,我需要'this'的名称/ id(我可以访问其他上下文/对象中的属性)。是不是有可能得到那个?
我已经为此searched了,但找不到合适的解决方案。
答案 0 :(得分:4)
您需要使用bracket notation从this
上下文获取属性值。
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 */