例如,我的代码
(function ($) {
window.FOO || (FOO = {});
}(jQuery));
导致jshint错误:
Expected an assignment or function call and instead saw an expression.
有没有更好的方法来编写我的上述代码?
即。如果未在全局窗口范围中定义FOO
,则将其初始化为{}
答案 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!"