<分区>
假设我有
var myObject = {
'myFunction' : function () {
// something here that lets me get 'myObject'
}
}
我已经尝试了在这里找到的各种函数和诸如 this.constructor.name
之类的东西,但我总是得到“对象”作为返回值。在这种情况下,有什么办法可以得到变量的实际名称吗?
编辑以解释原因 这样也许人们会更好地理解...我希望能够制作一个使用 setInterval 连续调用的函数。像这样:
var myObject = {
'intval' : '',
'timeout' : 500,
'start' : function () {
this.objectName = 'myObject'; // <--I want this to be dynamically popped
this.intval=window.setInterval("window['"+this.objectName+"'].myFunction()",this.timeout);
},
'stop' : function () {
window.clearInterval(this.intval);
this.intval='';
},
'myFunction' : function () {
// do something
}
}
如果我将“myObject”硬编码为 this.objectName 但我不希望它被硬编码,这就很好用了。问题是我不想只执行 setInterval("window[this.objectName]",100) 因为
this在运行
setInterval` 时不在正确的上下文中,而且我不想硬编码对象名称