Допустим, у меня естьJavascript получить имя родительского объекта/переменной
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) because
is not in the right context when
setInterval`, и я не хочу иметь имя объекта hardcoded
Вы ищете что-то вроде 'this', это способ ссылки на объект? – helpermethod
нет, я не ищу ссылку на объект, я ищу фактическое имя объекта – slinkhi
Для отредактированного вопроса: start: function() { var that = this; это.intval = setInterval (функция() { that.myFunction(); }, this.timeout); }, – jasssonpet