我有这样一个函数:
this.doStuff({
'testkey': {
testfunction: function() {
// will return testfunction
console.log(Object.keys(this));
}
}
});
有没有办法在 testfunction 范围内获取 testkey
?
Object.keys(this)
将返回testfunction
。
最佳答案
JavaScript this
关键字有点不寻常——它会根据函数的调用方式而改变,大多数时候,this
会引用到它里面的功能。在这种情况下,这只是 testfunction
,因此它自然会只为您提供该函数的本地结果。
有各种关于理解this的教程:
- 在 Stack Overflow 上:How does the "this" keyword work?
- 怪癖模式:The
this
keyword - Mozilla 开发者网络:
this
operator reference
在您的场景中,Object.keys()接受一个对象并返回它的键。如果你想要你的对象
的键,你需要给它(虽然我已经重命名了你的变量):
var foo = {
'key': {
func: function() {
console.log(Object.keys(foo)); // <------
}
}
};
关于javascript - 获取父键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40974295/