Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';使用jQuery时,我是否可以通过窗口对象访问对象?_Javascript_Jquery_Window Object - Fatal编程技术网

Javascript 为什么可以';使用jQuery时,我是否可以通过窗口对象访问对象?

Javascript 为什么可以';使用jQuery时,我是否可以通过窗口对象访问对象?,javascript,jquery,window-object,Javascript,Jquery,Window Object,我试图通过窗口对象访问函数。在我的代码中,我的函数被一个字符串引用,因此我必须使用窗口对象(或eval)来获取它。我用纯JavaScript测试了我的代码,它工作得非常好。但是使用jQuery时失败了。以下是我的测试代码: function speak(words, callback){ for(var i=0;i<10000;i++){ console.log(words); } if(callback) callback.call(); } conso

我试图通过窗口对象访问函数。在我的代码中,我的函数被一个字符串引用,因此我必须使用窗口对象(或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']);​
函数说话(单词、回调){

对于(var i=0;i您没有声明
speak
window
的成员,JSFIDLE实际上将其包装在
文档中。ready
回调


或者,您需要将您的小提琴配置为

哦,我明白了。嗯。因此,任何不在
文档中的函数。ready
回调都会自动声明为窗口的成员,但如果它在
文档中。ready
则不是。Aust,全局范围中声明的函数和变量会隐式添加到全局对象中,在另一个函数中声明的函数和变量只在函数中存在。在编写JavaScript时,建议在闭包中编写所有代码,以避免意外的全局污染。