Допустим, у меня есть
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), потому что
это не в правильном контексте при запуске
setInterval`, и я не хочу, чтобы имя объекта было жестко запрограммировано