我之前已经看到过这种情况,例如window.foo || {}
(我知道它不起作用),但我不记得这是怎么做的。我想在这种情况下使用它:
(function(foo){
foo.bar = "bar";
})(window.foo || {});
我该怎么做?
答案 0 :(得分:1)
你想要这个:
(function(foo){
foo.bar = "bar";
})(window.foo || (window.foo = {}));
如果window.foo
存在,请将其作为参数
或者创建一个新对象window.foo
并将其作为参数传递
答案 1 :(得分:1)
我相信您正在描述的模式将检查属性foo
的全局窗口对象。如果未找到,则默认为空对象。如果您需要某种默认值而不是空对象,则可以为window.foo
分配值:
window.foo || (window.foo = "Gibberish and Goblins, oh my!")