我对Wasabi工具感兴趣。 请查看this piece of code。
我不理解这条指令:
var W = window.Wasabi = window.Wasabi || {};
我的最终目的是调整一个CSS属性,由JavaScript动态加载......
感谢您的帮助。
答案 0 :(得分:3)
这里发生了两件事。
a||b
是真实的,则{p> a
将返回a
,否则将返回b
。
所以window.Wasabi||{}
表示返回window.Wasabi
(如果已定义)或以其他方式返回新的空对象。
c=d=1
设置d
等于1
,c
等于d
。即将c
和d
设为1
。
如果已设置window.Wasabi
,则只需获取对它的引用并将其存储在W
中。否则,请创建一个新对象,在window.Wasabi
中存储引用(以便下次使用)并将其命名为W
以供使用。
答案 1 :(得分:2)
如果window.Wasabi不存在,那么window.Wasabi将等于{}。如果它已经存在,那么就不要改变它。最后,将W分配给window.Wasabi。所以,它就像这段代码:
var W;
if (!window.Wasabi) {
window.Wasabi = {};
}
W = window.Wasabi;
答案 2 :(得分:0)
本声明中有两个不那么明显的事情。有两个连续的等号,最后是normed=True
。他们没有关联,所以我会逐个解决它们。
||
在英语中,那就是:W等于window.Wasabi等于window.Wasabi。
现在,var W=window.Wasabi=window.Wasabi;
//Shorthand for
var window.Wasabi=window.Wasabi;
var W=window.Wasabi;
在操作中是||
,它表示取最左边的值,如果它是真值,或者是右边的值。
OR
此模式对于为变量提供默认值非常有用。这将回答芥末至少是一个对象...
答案 3 :(得分:0)
本声明中有两个主要的javascript概念。
'gallery.*.text' => 'text of gallery 1',
'gallery.*.title' => 'title of gallery 1',
这相当于:
var x = y || {}
如果if (y)
x = y
else {
x = {}
是真的,则其值将分配给y
。否则,x
将等于x
(空对象)
{}
a = b = "something"
将被分配值"某些内容"并为b
分配a
的值(仅设置为"某些内容")
a和b都将被分配值""。
b
如果window.Wasabi 未定义(或为假),则会将其分配给var W=window.Wasabi=window.Wasabi||{};
。
然后将为W变量赋值window.Wasabi。
{}
是定义的,然后它将被赋值给它自己的值(什么都不会发生),并且W将被赋值window.Wasabi。
如果某个对象的初始值不存在,那么它是一种非常脏的方法,但是......它可以工作。