2

ウィンドウオブジェクトを介して関数にアクセスしようとしています。私のコードでは、関数は文字列によって参照されるため、ウィンドウオブジェクト(またはeval)を使用して取得する必要があります。純粋なJavaScriptでコードをテストしましたが、完全に機能します。しかし、jQueryを使用すると失敗します。これが私のテストコードです:

function speak(words, callback){
  for(var i=0;i<10000;i++){
      console.log(words);
  }
  if(callback)
    callback.call();
}

console.log(window['speak']);​

これは、動作する純粋なJavaScriptバージョンへのリンクです。
これは、機能しないjQueryバージョンへのリンクです。

これをjQueryで機能させるには何をする必要がありますか?

4

1 に答える 1

5

speakあなたはのメンバーとして宣言していませんでしたwindow、そしてJSFiddleは実際にそれをdocument.readyコールバックでラップします。オブジェクトで使用できるようにする場合は、コードの一部として明示的に設定する必要がありwindow.speak = speakwindowます。

または、ラッパーではなくラッパーなしで実行するようにフィドルを構成する必要がありますonDomReady

于 2012-09-17T18:03:37.437 に答える