无法理解JavaScript指令
我对这个工具感兴趣。 请看一看 我不明白这个说明:无法理解JavaScript指令,javascript,Javascript,我对这个工具感兴趣。 请看一看 我不明白这个说明: var W = window.Wasabi = window.Wasabi || {}; 我的最终目的是调整由JavaScript动态加载的CSS属性 谢谢您的帮助。如果window.Wasabi不存在,那么window.Wasabi将等于{}。如果它已经存在,那么不要改变它。最后,将W指定给window.Wasabi。所以,它就像这样的代码: var W; if (!window.Wasabi) { window.Wasabi =
var W = window.Wasabi = window.Wasabi || {};
我的最终目的是调整由JavaScript动态加载的CSS属性
谢谢您的帮助。如果window.Wasabi不存在,那么window.Wasabi将等于{}。如果它已经存在,那么不要改变它。最后,将W指定给window.Wasabi。所以,它就像这样的代码:
var W;
if (!window.Wasabi) {
window.Wasabi = {};
}
W = window.Wasabi;
如果window.Wasabi不存在,那么window.Wasabi将等于{}。如果它已经存在,那么不要改变它。最后,将W指定给window.Wasabi。所以,它就像这样的代码:
var W;
if (!window.Wasabi) {
window.Wasabi = {};
}
W = window.Wasabi;
这里发生了两件事
- 逻辑或运算符:
a | | b
如果a
是真的或b
不是真的,将返回a
所以window.Wasabi | |{}
mean returnwindow.Wasabi
如果它被定义,或者返回一个新的空对象
- 双重指派:
c=d=1
设置d
等于1
和c
等于d
。i、 e.将c
和d
设置为1
- 把这两件事放在一起:
如果已经设置了
window.Wasabi
,那么只需获取对它的引用并将其存储在W
中即可。否则,创建一个新对象,在窗口中存储一个引用。Wasabi
(下次使用)并将其称为W
,以便立即使用。这里发生了两件事
- 逻辑或运算符:
a | | b
如果a
是真的或b
不是真的,将返回a
所以window.Wasabi | |{}
mean returnwindow.Wasabi
如果它被定义,或者返回一个新的空对象
- 双重指派:
c=d=1
设置d
等于1
和c
等于d
。i、 e.将c
和d
设置为1
- 把这两件事放在一起:
如果已经设置了
window.Wasabi
,那么只需获取对它的引用并将其存储在W
中即可。否则,创建一个新对象,在窗口中存储一个引用。Wasabi
(下次使用)并将其命名为W
,以便立即使用。此语句中有两个不太明显的内容。有两个连续的等号,最后是|
。他们没有亲戚关系,所以我会逐一处理
var W=window.Wasabi=window.Wasabi;
//Shorthand for
var window.Wasabi=window.Wasabi;
var W=window.Wasabi;
在英语中,这是:W等于窗。芥末等于窗。芥末
现在,|
是一个或
运算,它表示如果是真实值,则取最左边的值,或者取右边的值
var window.Wasabi=window.Wasabi||{};
//equates to
var window.Wasabi;
if(window.Wasabi){
window.Wasabi=window.Wasabi;
}else{
window.Wasabi={};
}
此模式对于为变量指定默认值非常有用。这将回答说芥末至少是一个物体…在这句话中有两件不太明显的事情。有两个连续的等号,最后是
|
。他们没有亲戚关系,所以我会逐一处理
var W=window.Wasabi=window.Wasabi;
//Shorthand for
var window.Wasabi=window.Wasabi;
var W=window.Wasabi;
在英语中,这是:W等于窗。芥末等于窗。芥末
现在,|
是一个或
运算,它表示如果是真实值,则取最左边的值,或者取右边的值
var window.Wasabi=window.Wasabi||{};
//equates to
var window.Wasabi;
if(window.Wasabi){
window.Wasabi=window.Wasabi;
}else{
window.Wasabi={};
}
此模式对于为变量指定默认值非常有用。这将回答Wasabi至少是一个对象…在这句话中有两个主要的javascript概念需要理解 第一个是: 这相当于:
if (y)
x = y
else {
x = {}
如果y
为true,则其值将分配给x
。否则,x
将等于{}
(空对象)
第二个是:
b
将被分配值“某物”,而a
将被分配值b
(刚刚被设置为“某物”)
a和b都将被赋予“某物”的值
应用于您的示例:
如果window.Wasabi没有定义(或是falsy),那么它将被分配到{}
。
然后W变量将被赋值为window.Wasabi
Iswindow.Wasabi
被定义,然后它将被分配到自身的值(不会发生任何事情),而W将被分配到window.Wasabi的值
如果一个对象不存在,那么设置它的初始值是一种非常肮脏的方式,但是。。。它是有效的。在这个语句中有两个主要的javascript概念需要理解 第一个是: 这相当于:
if (y)
x = y
else {
x = {}
如果y
为true,则其值将分配给x
。否则,x
将等于{}
(空对象)
第二个是:
b
将被分配值“某物”,而a
将被分配值b
(刚刚被设置为“某物”)
a和b都将被赋予“某物”的值
应用于您的示例:
如果window.Wasabi没有定义(或是falsy),那么它将被分配到{}
。
然后W变量将被赋值为window.Wasabi
Iswindow.Wasabi
被定义,然后它将被分配到自身的值(不会发生任何事情),而W将被分配到window.Wasabi的值
如果一个对象不存在,那么设置它的初始值是一种非常肮脏的方式,但是。。。它很有效。感谢所有人提供了这些好的、及时的答案!感谢所有这些好的和及时的回答!