2010-11-03 51 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') 

即使浏览器不支持它。