私が持っているとしましょう
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` を実行するだけではなく、オブジェクト名をハードコーディングしたくないことです。