if (!window['console']) {
window.console = {
log: function(msg) {}
}
}
$(window).ready(function() {
Site.onReady();
});
var Site = {
host: null,
path: null,
etc..
还有var Helpers,var Site,看起来还不错,但目的不明白?有谁知道吗?
答案 0 :(得分:3)
if (!window['console']) {
window.console = {
log: function(msg) {}
}
}
这将检查当前是否已经分配给window.console的任何内容,如果没有,它会分配一个具有“log”功能的自定义对象。这使得window.console.log无论如何都可以使用,如果已经有一个本机(或早期定义)的函数版本,它将被使用。
$(window).ready(function() {
Site.onReady();
});
var Site = {
host: null,
path: null,
etc..
我不知道这是为了什么,但Site
在放入$(window).ready()
的匿名回调时是未定义的,这是应该避免的(只需放置$(窗口).ready()下面定义了站点)
至于这个特定的片段:
$(window).ready(function() {
Site.onReady();
});
这会将一个匿名函数传递给$(window).ready()函数,该函数将在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!"
答案 1 :(得分:0)
看起来它初始化了页面上预期的几个全局对象。例如console
,它可以在Firefox / Firebug中用于日志记录,但不能用于其他浏览器。因此,通过检查是否存在window['console']
并在必要时添加它,您可以信任可以调用console.log()
的JavaScript代码而不会导致错误。
我认为Site,Helpers等都做类似的事情。
答案 2 :(得分:0)
它在窗口对象上定义一个'console'对象文字,如果它还没有,它有一个函数日志。这意味着您可以在代码中编写
console.log('something')
即使浏览器不支持它。