我試圖通過窗口對象訪問一個函數。在我的代碼中,函數被字符串引用,所以我必須使用窗口對象(或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