2010-11-03 27 views

回答

3
if (!window['console']) { 
    window.console = { 
    log: function(msg) {} 
    } 
} 

這將檢查是否有任何當前已分配給window.console的內容,如果沒有,則會分配一個具有「日誌」功能的自定義對象。這使得window.console.log無論如何都可用,並且如果已經有一個本地(或更早定義的)函數版本,它將被使用。

$(window).ready(function() { 
    Site.onReady(); 
}); 



    var Site = { 
     host: null, 
     path: null, 
     etc.. 

我不知道這是對的,但Site它放入匿名回調$(window).ready()的時間,而這是應該避免的(只需將$(窗口)。就緒未定義()以下的網站被定義在哪裏)

作爲該特定片段:

$(window).ready(function() { 
     Site.onReady(); 
    }); 

此通過一個匿名函數到$(窗口)。就緒()函數,該函數將調用它當DOM準備。直接使用匿名函數可避免命名函數並在稍後傳遞它的需要。

function myFunc(){//我們現在可以在任何地方使用myFunc,這可能不需要 Site.onReady(); }

$(window).ready(myFunc); 

最後:

var Site = { 
      host: null, 
      path: null, 
      etc.. 

var myVar = {key1:"value", key2:"other_value"};語法創建具有鍵和值的新對象,可以像這樣使用:myVar.key1 = "newValue!"

0

看起來像它初始化頁面上預期的幾個全局對象。例如console,它在Firefox/Firebug中可用於記錄,但不能用於其他瀏覽器。因此,通過檢查是否存在window['console']並在必要時添加它,您可以信任JavaScript代碼,您可以調用console.log()而不會導致錯誤。

我假設網站,幫手等都做類似的事情。

0

它在窗口對象上定義了一個「控制檯」對象字面值,如果它尚未存在,則它具有一個函數日誌。這意味着在您的代碼中,您可以編寫

console.log('something') 

即使瀏覽器不支持它。