JavaScript中的默认参数导致jshint错误

时间:2014-08-07 09:12:04

标签: javascript jshint

例如,我的代码

(function ($) {

    window.FOO || (FOO = {});

}(jQuery));

导致jshint错误:

Expected an assignment or function call and instead saw an expression.

有没有更好的方法来编写我的上述代码?

即。如果未在全局窗口范围中定义FOO,则将其初始化为{}

1 个答案:

答案 0 :(得分:2)

更新:来自评论:

  

我已更新上述代码。我希望FOO在全球范围内,即窗口。

为此,您只需设置window.FOO

window.FOO = window.FOO || {};

如果window.FOO已存在,此值将保持不变,否则window.FOO将设置为空对象。


旧回答:

您需要使用var声明变量:

var FOO = window.FOO || {};

这会将FOO变量设置为window.FOO(如果存在)或空对象(如果不存在)。

var FOO = window.FOO || {};
console.log(FOO);

> Object {}

window.FOO = "Hello, world!";
var FOO = window.FOO || {};
console.log(FOO);

> "Hello, world!"