var handles = this._handles || (this._handles = {})
在这个表达式中this._handles这个变量何时为真,何时为假啊this._handles = {}还有这个复制表达式到底是真是假啊,这个语句到底想表达什么?
var handles = this._handles || (this._handles = {})
在这个表达式中this._handles这个变量何时为真,何时为假啊this._handles = {}还有这个复制表达式到底是真是假啊,这个语句到底想表达什么?
这个表达式的意思是:
当this._handles
为null
或者undefined
或者0
或者false
或者空字符串的时候,
给this._handles
赋值为{}
,并且将{}
也赋值给var handles
。
当this._handles
不为null
并且undefined
并且0
并且false
并且空字符串的时候,
直接把this_handles
的值赋值给var handles
当 this._handles
为假值(0
, undefind
, null
, false
) 时,为 false
,反之为 true
。
||
的作用是,如果前面的表达式为真就取前面的值,否则计算后面的。
(表达式)
的作用是执行其中的表达式并返回值,如果括号中有多个表达式(如:(a=1,b=2)
)就返回最后一个表达式的值。
整个表达式的作用是:如果this._handles
为真值,就把它的值赋给handles
;如果为假值,就初始化为一个对象,并把值赋值handles
。
var handles;
if (this._handles) {
handles = this._handles;
} else {
this._handles = {};
handles = this._handles;
}
就是上面这段代码的意思,写成一行要简洁一点。
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
这句的意思是:
1,声明变量handles,它先取this._handles的值
2,如果this._handles是假值(不存在),则将this._handles设为一个{}
3,再将this._handles赋给变量
其实就是先判断this._handles是否有值,没有值就赋值,最后赋给变量
你先看=右边的部分,思路就清晰了