我以前见过这样做,类似window.foo || {}
(我知道这是行不通的),但我不记得这是如何完成的。我想在这种情况下使用它:
(function(foo){
foo.bar = "bar";
})(window.foo || {});
我该怎么做呢?
我以前见过这样做,类似window.foo || {}
(我知道这是行不通的),但我不记得这是如何完成的。我想在这种情况下使用它:
(function(foo){
foo.bar = "bar";
})(window.foo || {});
我该怎么做呢?
你要这个:
(function(foo){
foo.bar = "bar";
})(window.foo || (window.foo = {}));
window.foo
如果存在则取并作为参数传递
或者创建一个新对象window.foo
并将其作为参数传递
我相信您所描述的模式将检查全局窗口对象的属性foo
。如果没有找到,它将默认为空对象。window.foo
如果您需要某种默认值而不仅仅是一个空对象,您可以为其分配一个值:
window.foo || (window.foo = "Gibberish and Goblins, oh my!")