如何在javascript中传递一个参数,确保它的引用存在

时间:2013-10-28 17:00:25

标签: javascript

我之前已经看到过这种情况,例如window.foo || {}(我知道它不起作用),但我不记得这是怎么做的。我想在这种情况下使用它:

(function(foo){
    foo.bar = "bar";
})(window.foo || {});

我该怎么做?

2 个答案:

答案 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!")