【发布时间】:2012-05-31 17:02:30
【问题描述】:
假设我有
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) becausethisis not in the right context whensetInterval`,而且我不想将对象名硬编码
【问题讨论】:
-
您是否正在寻找类似
this的东西,这是一种引用对象的方式? -
不,我不是在寻找对象引用,我在寻找对象的实际名称
-
对于已编辑的问题: start: function () { var that = this; this.intval = setInterval(function () { that.myFunction(); }, this.timeout); },
标签: javascript object