我看过下面的代码...
var xhr = $.ajax({...});
xhr && xhr.abort && xhr.abort();
ok(xhr, "XHR object is not null or undefined");
并努力理解第二行xhr && xhr.abort && xhr.abort();
我想明白这是什么意思。
的定义ok( bool , string )
我看过下面的代码...
var xhr = $.ajax({...});
xhr && xhr.abort && xhr.abort();
ok(xhr, "XHR object is not null or undefined");
并努力理解第二行xhr && xhr.abort && xhr.abort();
我想明白这是什么意思。
的定义ok( bool , string )
xhr && xhr.abort && xhr.abort();
可以重写为
if (xhr) {
if (xhr.abort) {
xhr.abort();
}
}
也就是说,如果xhr
定义了(不是'falsy'),并且如果定义xhr
了abort
键,则调用xhr.abort();
如果该行改为:
xhr.abort();
然后如果xhr
is undefined
,则 aReferenceError
将被抛出。如果xhr.abort
不是函数(或undefined
),则 aTypeError
将被抛出。
第二行相当于:
if (xhr && xhr.abort && typeof xhr.abort === 'function') {
xhr.abort();
}
如果前一个语句的第一部分失败(意味着 xhr 从未定义或它是)QUnit
,则检查将失败。null