我试图通过窗口对象访问一个函数。在我的代码中,函数被字符串引用,所以我必须使用窗口对象(或eval)来获取它。我用纯JavaScript测试了我的代码,并且它完美地工作。但是,当使用jQuery它失败。这里是我的测试代码:为什么在使用jQuery时无法通过窗口对象访问对象?
function speak(words, callback){
for(var i=0;i<10000;i++){
console.log(words);
}
if(callback)
callback.call();
}
console.log(window['speak']);
Here is a link to the pure JavaScript version which works.
Here is a link to the jQuery version which doesn't work.
什么我需要做的,使jQuery的这项工作?
哦,我明白了。嗯。因此,不在'document.ready'回调中的任何函数都会自动声明为window的成员,但是如果它位于'document.ready'中,那么它不是? – Aust
@如果在全局范围内声明的函数和变量隐式添加到全局对象中,则在另一个函数内声明的函数和变量仅在函数内保留。在编写JavaScript时,建议在关闭中编写所有代码,以避免意外的全球污染。 – zzzzBov