嗨,我最近从这里得到了一段 JavaScript 代码片段。
有人可以解释一下这个语句是如何工作的:(jq=jq.slice(1)).length && hidenext(jq);在下面的函数中?
(function hidenext(jq){
jq.eq(0).fadeOut("fast", function(){
(jq=jq.slice(1)).length && hidenext(jq);
});
})($('div#bodyContent a'))
嗨,我最近从这里得到了一段 JavaScript 代码片段。
有人可以解释一下这个语句是如何工作的:(jq=jq.slice(1)).length && hidenext(jq);在下面的函数中?
(function hidenext(jq){
jq.eq(0).fadeOut("fast", function(){
(jq=jq.slice(1)).length && hidenext(jq);
});
})($('div#bodyContent a'))
在这里,由于没有使用结果,逻辑 AND被用作一种 short if。
这是一样的
if ((jq=jq.slice(1)).length) hidenext(jq);
它使用这样一个事实,即如果第一部分未评估为真,则不会评估第二部分。
这意味着只有在(现在设置为返回值has a > 0hidenext(jq)时才会调用它。因为短路了,如果第一个操作数是假的,评估就会停止。jqjq.slice(1)length&&