インスタンスのメソッドを750msの遅延で呼び出そうとしています。問題は、動作しないということです。私はsetIntervalとオブジェクトに何らかの問題があることを読んだので、おそらくsetTimeoutもあるでしょう。setTimeout( 'classInstance.doFoo(arg)'、750);
は、私がこれを持って言う:
function App()
{
this.doFoo = function (arg)
{
alert("bar");
}
}
window.app = new App();
setTimeout('app.doFoo(arg)', 750);//doesn't work
app.doFoo(arg); //works
は、回避策はありますか?インスタンスと関数をsetTimeoutに渡すにはどうすればいいですか?
@Twodordan、よろしくお願いいたします。 –
説明:文字列をsetTimeoutに渡すと、Javascriptはコードを実行するために 'eval'する必要があります。 'eval'コードはあなたのメインコードとは異なるスコープで実行されるので、変数参照は簡単に中断することができます。匿名関数をsetTimeoutに渡す方がずっと良いですし、変数はすべて正しい範囲になります – Gareth
@Gareth +1解説。 – alex